前文讲了正则表达式的基础篇,基本正则,基本正则对于大多数的情况下已经够用了,但是还是有少数的一些时候,基本正则会无从发力,那么这一章我们就讲正则表达式的高级篇—扩展正则
扩展正则:扩展正则就是在基本正则上演化而来,为了简化基本正则,为了完成基本正则代替不了的规则文本,我们还是先来看下扩展正则有哪些元字符
序号 |
元字符 |
释义 |
举例 |
1 |
+ |
最少匹配一次 |
a+ //a最少匹配一次
|
2 |
? |
最多匹配一次 |
a? //a最多匹配一次 |
3 |
( ) |
组合成一个整体,保留 |
(abc){2,5} //匹配abc这个整体2到5次 |
4 |
| |
或者 |
(abc|def) //匹配abc或者def |
5 |
\b |
表示为单词边界 |
\bthe\b //匹配the这个单词,如then就不能匹配 |
6 |
{n,m} |
匹配n到m次 |
a{1,2} //匹配a,1到2次 |
注意:使用grep的时候,如果需要使用扩展正则,那么必须要加-E这个选项,或者使用egrep,两者完全等效!
实战演练来啦

1.过滤掉空行
egrep '.' /etc/rc.local

2.输出service单词
egrep '\bservice\b' /etc/rc.local


3.输出during或者boot
egrep '(during|boot)' /etc/rc.local

常用正则表达式—干货!
电子邮箱 |
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
|
汉字 |
[\u4e00-\u9fa5]
|
ipv4 |
^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$
|
年月日 |
(\d{4}|\d{2})-((0?([1-9]))|(1[1|2]))-((0?[1-9])|([12]([1-9]))|(3[0|1]))
|
时间xx:xx |
((1|0?)[0-9]|2[0-3]):([0-5][0-9])
|
未经允许不得转载:天府数据港官方信息博客 » 正则表达式之高级篇——扩展正则
客官点个赞呗! (0)