码迷,mamicode.com
首页 > 系统相关 > 详细

linux-正则表达式

时间:2019-07-02 21:14:14      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:sed   表示   利用   gawk   扩展   扩展正则表达式   包括   字母   正则表达式   

正则表达式是linux工具用来过滤文本的模式模板

正则表达利用通配符来代表数据流中的一个或多个字符  常用于sed gawk grep等程序中

正则表达式分为基本正则表达式(BRE)和扩展正则表达式(ERE)  sed只支持BRE,gawk支持ERE

 

 

BRE模式:

正则表达式区分大小写  

正则表达式不用写出完整的单词,自动匹配剩余部分  

可以在正则表达式中使用空格和数字  

如果在正则表达式中定义了空格,那么就必须出现在数据流中,甚至可以匹配多个空格

正则表达式识别的特殊字符包括  .*[]^${}0+\+?|()  (不能在文本模式中单独使用这些字符,需要做转义\处理)  尽管/不是正则表达式的特殊字符,但是在正则表达式也要做转义处理

^(脱字符)    定义从数据流中由换行符决定的新文本行的行首开始的模式。  要使用脱字符,必须将他放在正则表达式中指定的模式前面  如果将脱字符列在正则表达式的模式的最后,编辑器会将他当作普通字符匹配。

$(美元符)    定义了行尾锚点  这个字符加在文本模式之后来指明数据行必须以该模式结尾

组合锚点      行首锚点和行尾锚点一起使用(可以删除空白行)

.(点字符)      点字符用来匹配除换行符之外任意的单字符(必须匹配一个字符,不能没有)

*              在字符后面放置*表示该字符将会在匹配模式的文本中出现0次或多次  常配合点字符使用

[](字符组)    字符组中的某个字符出现子数据流中,那他就匹配了该模式    方括号中应该含有你要在该组中包含的任何字符  一个字符组只能匹配一个字符,不能匹配多个字符

[^](排除字符串)   反转匹配,匹配字符组中不含有的字符  []+^(字符组+脱字符)

[-](使用区间)    指定区间的第一个字符,单破折号,最后一个字符,即可表示从第一个到最后一个字符之间的所有字符(只能表示文本中的一个字符)  可以在单个字符组中指定多个不连续的区间

特殊字符组:

[[:alpha:]]p            匹配任意字母字符,不管式大写还是小写

[[:alnum:]]            匹配任意字母数字字符0-9,A-Z,a-a

[[:blank:]]            匹配空白符或指标符

[[:digit:]]             匹配0-9之间的数字

[[:lower:]]            匹配小写字母a-z

[[:print:]]            匹配任意可打印字符

[[:punct:]]            匹配任意标点符号

[[:space:]]            匹配任意空百符:空格,制表符,NL,FF,VT,CR

[[:upper:]]            匹配任意大写字母A-Z

 

 

ERE模式(扩展正则表达式)

?            ?表示前面的字符出现0次或1次,仅限于此

+            +表示前面的字符可以出现1次或多次,但至少出现1次

{}            为重复的正则表达式指定一个上限

  {n}            正则表达式正好出现n次

  {m,n}           正则表达式至少出现m次,至多n次

|             管道符号允许在检查数据流时,用逻辑或的方式指定正则表达式引擎要用的两个或多个模式,如果其中一个模式匹配了数据流文本,文本就通过了,如果没有模式匹配,数据流文本匹配就不成立

()           把正则表达式的模式用()聚合起来就可以把()内部的正则表达式模式当成标准字符(单个)。

linux-正则表达式

标签:sed   表示   利用   gawk   扩展   扩展正则表达式   包括   字母   正则表达式   

原文地址:https://www.cnblogs.com/chen1262567640/p/11121899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!