其他
正则表达式(3)-扩展正则表达式
每周二、四、六定期更新!
字符匹配
. 匹配任意单个字符
[] 匹配括号内的任意单个字符
[^] 匹配不包含括号内的单个字符的字符
这里的字符匹配和基本正则表达式里的是一样的,我们不在做演示,请自行练习。
次数匹配
* 匹配前面的字符任意次,包括0次
? 匹配前面的字符0次或1次
+ 1次或多次
{n} 匹配n次
{m,n} 至少m次,至多n次
看到了吧,相比于基本的正则表达式,原来的反斜线'\\'都去掉了。看上去更简洁了。
# 查找含有连续的m的行,m最少2个,最多4个
[root@studyclub jason]# grep -E "m{2,4}" passwd
hommme
homme
hommmmmmmmme
# 查找ho开头并且紧跟若干个m的字符串的行
[root@studyclub jason]# grep -E "hom+" passwd
home
hommme
homme
hommmmmmmmme
jason:x:1000:1000::/home/jason:/bin/bash
james:x:1001:1002::/home/james:/bin/bash
eric:x:1002:1002::/home/eric:/bin/bash
simon:x:1003:1002::/home/simon:/bin/bash
test:x:1004:1004::/home/test:/bin/bash
位置定位
^ 行首
$ 行尾
\<或\b 匹配词首,用于单词匹配的最左侧
\>或\b 匹配词尾,用于单词匹配的最右侧
这个和基本正则表达式也是一致的,我们不再赘述。
分组
() 分组
后向引用: \1, \2,...
| 或者
a|b a或b
C|cat C或cat
(C|c)at Cat或cat
实例演示:
# 我们在之前使用的passwd文件中加入一行:
homehomehomehomehomehome
# 查找连续出现至少2次,最多5次home的行
[root@studyclub jason]# grep -E "(home){2,5}" passwd
homehomehomehomehomehome
下一次推文我们开始学习文本处理三剑客。
《Linux基础及进阶》:
057 - Shell基础(9)-条件判断2 058 - Shell基础(10)-条件判断3 059 - Shell基础(11)-关于shell语句中小括号()和大括号{}的作用 060 - 正则表达式(1)-基本正则表达式1 061 - 正则表达式(2)-基本正则表达式2看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
微信号|bjdream-1
Cloud研习社 ·