正则表达式是指由一类字符书写的模式,其中有些字符不表示字符的字面意义,而是变速控制或通配的功能。
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次
\{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
原文:http://9617810.blog.51cto.com/9607810/1597548