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