正则表达式是指由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是变速控制或通配的功能。

Grep 正则表达式分两类:

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

语法格式:grep [OPTION]….’PATTERN’ FILE….

基本正则表达式分为:

     字符匹配和匹配次数、位置锁定、分组、grep选项

1、字符匹配指令字符集:

 .:匹配任意单个字符

[]:匹配指定集合中的任意字符

[[:alnum:]]:[0-9a-zA-Z]代表匹配数字和大小写字符

[[:alpha:]]:[a-zA-Z]代表匹配大小写字符

[[:upper:]]:[A-Z]代表匹配大写字符

[[:lower:]]代表匹配小写字符

[[:digit:]]代表匹配数字字符

[[:space:]]代表匹配空白字符

[[:punct:]]  代表匹配标点符号字符

 

[^]:匹配指定集合外的任意单个字符

匹配次数:用于对其前面紧邻的字符所能够出现的次数作出限定

匹配次数字符指令集:*\?,\{m\},\{m,n\},.*

*;匹配其前面任意次,0,1或多次

\?:匹配其前面的字符0次或1

 

\{m\}:匹配其前面的字符的M次:

\{m,n\}:匹配其前面的字符至少m次,至多n

.*:匹配任意长度任意字符

2、位置锁定

       位置锁定字符指令集:^,$,^$,\<,\>,\<pattern\>

^;行首锚定(注释:要写在模式最左侧)

$行尾锚定(注释:写在模式最右侧)

 

^$:(代表空白行)

\<:词首锚定(出现在要查找的单词模式的左侧)

\>:词尾锚定(出现在要查找的单词模式的右侧)

\<pattern\>:匹配单词

分组\\

后向引用;模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果\\)的模式匹配到了某内容,此内容后面的模式中可以被引用;

\1,\2\3,\4是指第几个括号引用第#个左括号以及与其匹配右括

号之间的模式匹配到的内容

Grep的选项:

  -v:反向选取

  -O:仅显示匹配到内容

  -i:使用扩展正则表达式

  -A#:匹配字符前两行

-B#匹配字符后两行

-C#匹配字符上下两行

 

Egrep及扩展的正则表达式

 扩展正则表达式的元字符:

   字符匹配分为:

 .:匹配任意单个字符

[]:匹配指定集合中的任意字符

[^]:匹配指定集合外的任意单个字符

匹配次数字符集:

   *;匹配其前面任意次,0,1或多次

\?:匹配其前面的字符0次或1

 

 

\{m\}:匹配其前面的字符的M次:

\{m,n\}:匹配其前面的字符至少m次,至多n

.*:匹配任意长度任意字符

2、位置锁定

       位置锁定字符指令集:^,$,^$,\<,\>,\<pattern\>

^;行首锚定(注释:要写在模式最左侧)

$行尾锚定(注释:写在模式最右侧)

 

位置锚定:、

   字符指令集:

^;行首锚定(注释:要写在模式最左侧)

$行尾锚定(注释:写在模式最右侧)

 

\<:词首锚定(出现在要查找的单词模式的左侧)

\>:词尾锚定(出现在要查找的单词模式的右侧)

\<pattern\>:匹配单词

分组\\

后向引用;模式中,如果使用\(\)实现了分组,在某行文本的检查中,如果\\)的模式匹配到了某内容,此内容后面的模式中可以被引用;

\1,\2\3,\4是指第几个括号引用第#个左括号以及与其匹配右括

号之间的模式匹配到的内容