首页 > 代码库 > grep,egrep正则表达式

grep,egrep正则表达式

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

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是指第几个括号引用第#个左括号以及与其匹配右括

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

技术分享

本文出自 “正则表达式基础” 博客,请务必保留此出处http://9617810.blog.51cto.com/9607810/1597548

grep,egrep正则表达式