• Linux之正则表达式


    简述

    正则表达式是什么?

    由一类特殊字符及文本字符所编写的模式,其中有些元字符不表示字符字面意义,而表示控制或统配的功能.当然正则表达式适用于所有语言.

    Linux中支持正则表达式的程序

    grep,sed,awk,vim,less,nginx等

    正则表达式的分类

    基本正则表达式: BRE

    扩展正则表达式: ERE

    基本正则表达式

    字符匹配

    字符 意义
    . 匹配任意字符
    [] 匹配指定范围内的单个字符
    [^] 匹配指定范围外的单个字符
    [:alnum:] 匹配数字和字母
    [:alpha:] 匹配任何英文大小写字符
    [:lower:] 匹配小写字母
    [:upper:] 匹配大写字母
    [:digit:] 匹配十进制数字
    [:xdigit:] 匹配十六进制数字
    [:space:] 匹配水平和垂直的空白字符
    [:blank:] 匹配空白字符(制表符和空白格)
    [:graph:] 匹配可打印的非空白字符
    [:punct:] 匹配标点符号
    [:print:] 匹配可打印字符
    [:cntrl:] 匹配不可打印的控制字符

    匹配次数

    用在指定次数的字符后面,用于指定前面的字符出现的次数.

    字符 意义
    * 匹配前面的字符,任意次包括0次
    .* 匹配前面任意字符任意次数
    ? 匹配前面的字符0次或者1次
    + 匹配前面的字符至少1次
    {n} 匹配前面的字符n次
    {m,n} 匹配前面的字符至少m次,至多n次
    {,n} 匹配前面的字符至少出现n次
    {n,} 匹配前面的字符至多出现n次

    位置锚定

    定位出现的位置

    字符 意义
    ^ 行首锚定,用于模式最左侧
    $ 行尾锚定,用于模式最右侧
    ^PATTERN$ 用于匹配整行
    ^$ 匹配空行
    ^[[:space:]] 匹配空行
    < 或  词首锚定,用于匹配单词模式最左侧
    > 或者  词尾锚定,用于匹配单词模式最右侧
    <PATTERN> 匹配整个单词

    分组

    将一个或者多个字符捆绑在一起,单做一个整体进行处理

    ( )               分组
    1 2               分组的后向引用, 1 2 调用第一个第二个分组匹配的结果,以最左边括号
    如下:
          echo abc cc adc abc dd ace | grep -o "(a.c).*1"
    		 结果: abc cc abc abc
    

      

    扩展正则表达式

    简单来说就是去掉了转移符,是匹配模式更简便直观.

    字符匹配

    字符 意义
    . 任意单个字符
    [] 指定范围的单个字符
    [^] 不在指定范围的字符

    匹配次数

    字符 意义
    * 匹配前面的字符出现任意次数
    ? 匹配前面的字符出现0次或者1次
    + 匹配前面的字符0次或者1次
    {n} 匹配前面的字符出现n次
    {m,n} 匹配前面的字符出现至少m次至多n次

    位置锚定

    字符 意义
    ^ 行首锚定
    $ 行尾锚定
    < 或  词首锚定
    > 或  词尾锚定

    分组

    ()     分组
    1 2  分组后向引用
    

      

  • 相关阅读:
    ProtoType Design Tools
    什么是publickeytoken及publickeytoken的作用
    Windows最高权限system帐户
    Q70 AV01本本安装MAC
    解决MDict3在PPC下乱码的问题
    QT_XSP.CPP
    QT_XSP.CPP
    SetupFactory脚本
    DVD IFO FILE HEADER
    SerialPort comstat is being used without defining
  • 原文地址:https://www.cnblogs.com/yanshicheng/p/12323782.html
Copyright © 2020-2023  润新知