一、扩展正则表达式

  正则表达式的字符串表示方式依照不同的严谨程度而分为基础正则表达式和扩展正则表达式。扩展正则表达式除了一些简单的一组字符串处理之外,还可以做组的字符串处理。


二、区别与基础正则表达式的元字符

1、次数匹配

+  匹配前面的字符至少一次

{m} 匹配m次

{m,n} 至少m次,至多n次

{m,} 至少m次

{0,n} 至多n次


2、分组

() 分组

| 或者  例如:ac|bc  即ab或者bc


三、egrep

egrp 相当于grep -E 使用扩展正则表达式来构建模式

  

四、扩展正则表达式练习

1、找出netstat -tan命令执行结果以"LISTEN"或以'"STABLISHED"结尾的的行

netstat -tan | grep --color -E "(LISTEN|ESTABLISHED)[[:space:]]*"

此题关键点:cat -E 查看结束符之前的字符串


2、找到ifconfig命令下的1-255的整数

ifconfig | grep --color=auto  -E 

"\<([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\>"

此题关键点:分组锚定词首词尾

 

3、匹配真正意义上的IP地址


ifconfig | grep --color=auto  -E 

"(\<([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\>)\.){3}(\<([1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\>)"

此题关键点:\. .在正则表达式有特殊含义,需用转义符取消其特殊含义