扩展正则用法小结
正则表达式:regular expression。缩写成REGEXP,是用来匹配文件内容的。通过特点的字符,通配文件内容的。 扩展正则表达式用在egrep命令中,egrep = grep -E 扩展正则表达式的要点有如下几点: 1、字符匹配: . :表示任意一个字符 [] : 表示匹配中括号内的任意一个字符 [^] : 表示匹配中括号内除外的任意一个字符。 需要注意的:字符集的表示方式, [[:punct:]] 表示匹配标点符号的 [[:space:]] 表示匹配空白字符的 [[:digit:]] 表示匹配数字的 [[:alpha:]] 表示匹配字母的 [[:lower:]] 表示匹配小写字母的 [[:upper:]] 表示匹配大写字母的 [[:dignum:]] 表示匹配数字字母的。 同时匹配是支持取反操作的。[^[::]] 2、关于次数锚定 *:表示匹配其前面的字符任意次。包含零次 例子: 假如有一个文本的内容如下: a b ab aab abb amnb acdb amnbmnb grep 'a.*b' reg.txt #表示匹配包含以a开头,以b结束的行 ?: 表示匹配其前面的字符一次或零次。注意在扩展正则表达式中不要使用转义符 {m,n}: 表示匹配其前面的字符至少m次,至多n次,主要不要使用转义符 grep 'a.{1,3}b' reg.txt #表示匹配以a开头,b结束,中间至少有一个,至多有三个任意字符的行 +:表示匹配其前面的字符至少一次。 egrep 'a.+b' reg.txt # 表示匹配包含以a开头,不结束,中间至少有一个字符的行 # 注意,在扩展正则表达式中,?是不需要转义符的 b &;: 表示匹配单词首部 grep '&;ab' reg.txt grep 'bab' reg.txt 都是匹配以ab词组开头的行 &; b: 表示匹配单词尾部 3、位置锚定 ^: 表示锚定行首 $:表示锚定行尾 4、分组表示: ():对括号内的内容进行分组匹配;1,2,3(可以进行后项【前项】匹配) 假设有一个文本是: He love his lover She like her lover He like his lover She like her liker 需要匹配一行中如果有同时包含两个love或两个like的行? egrep '(l..e).*1' reg.txt [root@localhost testdir]# egrep '(l..e).*1' reg.txt He love his lover She like her liker [root@localhost testdir]# egrep 'l..e.*l..e' reg.txt He love his lover She like her lover He like his lover She like her liker 需要注意两者的区别用法。什么是后项匹配。 5、扩展正则表达式的或者表示方法 | :对 | 左右两边表示或者。 C|cat 可以匹配的C 和 cat 还是Cat 和 cat呢? [root@localhost testdir]# egrep 'C|cat' reg.txt cat Cat C Chinese 可以使用 egrep '(C|c)at' reg.txt 可以匹配到:Cat和cat 所以| 或的用法是匹配| 两边的字符或者字符串。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |