Shell 正则表达式

  • 正则表达式:可以过滤可以表达的行。正则表达式需要编辑工具来实现。

 

常用字符:

正则:“^n”                              #带表以什么开头。

正则:“n$”                              #代表以什么结尾。

正则:“^$”                              #代表空格。

正则:“.”                               #.代表左右吻合的任意一个字符如(r.t:root,rwwt)。

正则:“*”                               #*代表0个或多个任意一个字符。也可以用\?一个意思0个或一个。

正则:“.*”                              #代表包含左右都有并全部包含的如。(root,rootrsst)

正则:“字母\[3\]”                      #代表过滤次数。3代表次数。

正则:[^m]                              #非m的字符。

正则:+                                 #匹配+前字符1次或多次

 

正则表达式字符

^              # 行首定位                                                                     

$              # 行尾定位

.              # 匹配除换行符以外的任意字符

*              # 匹配0或多个重复字符

+              # 重复一次或更多次

?              # 重复零次或一次

?              # 结束贪婪因子 .*? 表示最小匹配

[]             # 匹配一组中任意一个字符

[^]            # 匹配不在指定组内的字符

\              # 用来转义元字符

<              # 词首定位符(支持vi和grep)  <love

>              # 词尾定位符(支持vi和grep)  love>

x\{m\}         # 重复出现m次

x\{m,\}        # 重复出现至少m次

x\{m,n\}       # 重复出现至少m次不超过n次

X?             # 匹配出现零次或一次的大写字母 X

X+             # 匹配一个或多个字母 X

()             # 括号内的字符为一组

(ab|de)+       # 匹配一连串的(最少一个) abc 或 def;abc 和 def 将匹配

[[:alpha:]]    # 代表所有字母不论大小写

[[:lower:]]    # 表示小写字母 

[[:upper:]]    # 表示大写字母

[[:digit:]]    # 表示数字字符

[[:digit:][:lower:]]    # 表示数字字符加小写字母 

 

 元字符

 \d       # 匹配任意一位数字

 \D       # 匹配任意单个非数字字符

 \w       # 匹配任意单个字母数字下划线字符,同义词是 [:alnum:]

 \W       # 匹配非数字型的字符

 

 字符类:空白字符

 \s       # 匹配任意的空白符

 \S       # 匹配非空白字符

 \b       # 匹配单词的开始或结束

 \n       # 匹配换行符

 \r       # 匹配回车符

 \t       # 匹配制表符

 \b       # 匹配退格符

 \0       # 匹配空值字符

 

 字符类:锚定字符

\b         #匹配字边界(不在[]中时)

\B         # 匹配非字边界

\A        # 匹配字符串开头

\Z        # 匹配字符串或行的末尾

\z         #只匹配字符串末尾

\G        # 匹配前一次m//g离开之处

 

 捕获

(exp)                # 匹配exp,并捕获文本到自动命名的组里

(?<name>exp)        # 匹配exp,并捕获文本到名称为name的组里,也可以写(?'name'exp)

(?:exp)              # 匹配exp,不捕获匹配的文本,也不给此分组分配组号

 

零宽断言

(?=exp)              # 匹配exp前面的位置
(
?<=exp) # 匹配exp后面的位置
(
?!exp) # 匹配后面跟的不是exp的位置
(
?<!exp) # 匹配前面不是exp的位置
(
?#comment) # 注释不对正则表达式的处理产生任何影响,用于注释
posted @ 2018-01-14 20:48  kevin.Xiang  阅读(4523)  评论(0编辑  收藏  举报