扩展正则表达式确实简洁直观!

今天是我陪你做实验的第38天

今 日 实 验

{egrep命令的使用}

想要使用扩展正则表达式,需要使用egrep命令。先看一下,扩展和基本有哪些区别,然后再做一些实验。

.

[]

{^}

上面这些在扩展表达式中

没有变

匹配次数中

*

+号表示 至少匹配一次(新增功能)

(m,n) 括号前不需要转义字符\了。

看一下扩展正则表达式的

匹配次数的增强功能

扩:以下字符串中

匹配o至少一次

e最少2次

最多10次

敲:echo 'rooteeeeer' | egrep 'ro+te' --color

看到扩展的正则表达式

最大的变化就是

不需要使用转义字符了

看起来更简洁

使用更方便

再看一下锚定符的变化

^ 行首锚定 没变

$ 行尾锚定 没变

\

\>词尾锚定也加入了\b表示方法

锚定词首

敲:echo 'chroot root rooter123' | egrep '\broot' --color

锚定词尾

敲:echo 'chroot root rooter123' | egrep 'root\b' --color

锚定这个词

敲:echo 'chroot root rooter123' | egrep '\broot\b' --color

锚定词尾只能是字符不能是数字

敲:echo 'chroot root rooter123' | egrep '[a-z]\b' --color

扩展正则表达式

新增了一个或者

|

或: 找到下面字符串中

有abc或者wde的

敲:echo 'abcde abwde abc wde' | egrep 'abc|wde' --color

或:找到下面字符串中

ab开头

中间是c或者w

de结尾的

敲:echo 'abcde abwde abc wde' | egrep 'ab(c|w)de' --color

分组

不用转义字符

匹配下面字符串

chen有3次的内容

敲:echo 'abcchenchenchen100' | egrep 'abc(chen)100' --color

再看一下 向后引用

引:c和d的值 分别引用a和b的值

敲:echo 'a=10b=20c=10d=20' | egrep 'a=(..)b=(..)c=\1d=\2' --color

扩展的正则表达式除了用egrep

还可以使用grep -E

敲:echo 'a=10b=20c=10d=20' | egrep 'a=(..)b=(..)c=\1d=\2' --color

等同于

敲:echo 'a=10b=20c=10d=20' | grep -E 'a=(..)b=(..)c=\1d=\2' --color

上面是和大家说的扩展正则表达式

可以看到最大的特点就是简洁

不用转义字符

不脑壳昏!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200325A042X600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券