首页 > 代码库 > 正则表达式和扩展正则表达式

正则表达式和扩展正则表达式

1、正则表达式是什么,有什么作用。

Global search REgular expression and Print out the line.  

正则表达式:正则表达式引擎

正则表达式:  
       是一类字符所书写的模式,其中许多字符不表示其字面意义,而是表达控制或通配等功能,

文本搜索工具,根据用户指定的文本模式(搜索条件)目标文件进行逐行搜索,显示能匹配到的

基本正则表达式:grep

扩展正则表达式: egrep, grep -E  
fgrep: fast, 不支持使用正则表达式

语法格式:  
            grep [option]... ‘PATTERN‘ FILE...

              --color=auto

命令选项:  
            -v: 反向选取    
            -o: 仅显示匹配的字串,而非字串所在的行    
            -i: ignore-case,忽略字符大小写    
            -E: 支持使用扩展正则表达式    
            -A #匹配内容的之后#行信息    
            -B #匹配内容的之前#行信息(第一个匹配项就是第一行)    
            -C #匹配内容的前后各#行信息

2、基本正则表达式和扩展字符表达式字符匹配的区别

基本正则表达式的元字符: 字符匹配   

次数匹配元字符:用于实现指定其前面的字符所能够出现的次数

不包含特殊字符的连续字符组成的串叫单词

正则次数匹配元字符        涵意扩展正则次数匹配元字符       涵意
          
      *
任意长度,它前面的字符可以出现任意次  
        *
任意长度,它前面的字符可以出现任意次
      \?0次或1次        ?0次或1次
    \{m\}m次       {m}m次
    \{m,n\}至少m 次,至多n次      {m,n}至少m 次,至多n次
    \{m,\}至少m次      {m,0}至少m次
    \{0,n\}至多n次      {0,n}至多n次
       .*任意长度的任意字符         +至少1次

3、字符匹配

      字符匹配          涵意
          .匹配任意单个字符
      [      ]匹配指定范围内的任意单个字符
     [[:alpha:]]    大小写字母
     [[:alnum:]]数子大小写字母
     [[:digit:]]            数字
        [^]          取反

4、位置锚定

     字符            涵意
     ^行首锚定写在模式最右侧
     $ 行尾锚定写在模式最右侧
    ^$          空白行
     \<词首,出现于单词左侧,\b\<char
     \>词尾,出现于单词左侧,\b\<char

5、分组

分组中的模式匹配到的内容,可由正则表达式引擎记忆在内存中,之后可被引用

            \(\)  
     例如:\(ab\)*

引用:  
        例如\(ab\(x\)y\).*\(mn\)    
        有编号:自左而后的左括号,以及与其匹配右括号    
                        \(a\(b\(c\)\)mn\(x\)\).*\1

例如:  
                        \(ab\?c\).*\1

                            abcmnaaa  
                            abcmnabc    
                            abcmnac    
                            acxyac    

fgrep ‘PATTERN‘ FILE...  
        不支持正则表达式