正则表达式
正则表达式
元字符
. //任意单个字符
[root@localhost opt]# touch {1..9}
[root@localhost opt]# ls | grep '.' //匹配所有单个字符
1
2
3
4
5
6
7
8
9
[ ] //匹配指定范围的单个字符
[root@localhost opt]# ls | grep [9]
[root@localhost opt]# 9
[^ ] //匹配指定范围外的任意单个字符
[root@localhost opt]# ls | grep '^[^1]$' //匹配除了1以外的全部
2
3
4
5
6
7
8
9
匹配次数
* //匹配其前面的任意单个字符的任意次
[root@localhost opt]# touch abcc abccc ab
[root@localhost opt]# ls | 'grep ^abc*$' //匹配*前的字符,可以出现任意次
ab
abcc
abccc
.* //任意长度的任意字符
[root@localhost opt]# ls | 'grep ^a.*$' //a后面可以接任意长度字符
a
ab
abcc
abccc
? //匹配其前面的任意单个字符1次或0次
[root@localhost opt]# ls | grep '^ab\?$' //匹配b0次或者1次
a
ab
\+ //匹配其前面的任意单个字符至少1次
[root@localhost opt]# ls | grep 'abc\+' //匹配c最少一次
abcc
abccc
\{m,n\} //匹配其前面的任意单个字符至少m次,至多n次
[root@localhost opt]# ls | grep '^abc\{1,2\}$' //匹配c的次数,至少一次,最多两次
abcc
位置锚定
^ //锚定行首,此字符后面的任意单个字符必须出现在行首
[root@localhost opt]# ls | grep '^a' //显示以a开头的
a
ab
abcc
abccc
$ //锚定行尾,此字符前面的任意单个字符必须出现在行尾
[root@localhost opt]# ls | grep 'c$' //显示以c结尾的
abcc
abccc
c
^$ //空白行
[root@localhost opt]# cat a //显示空白行
touch
abs
[root@localhost opt]# cat a | grep '^$'
[root@localhost opt]#
\<或\b //锚定词首,其后面的任意单个字符必须作为单词首部出现
[root@localhost src]# cat a //显示以hello开头的单词
hello liu hello yang hello
abc bca
asbchello adajhello
[root@localhost src]# grep '\bhello' a
hello liu hello yang hello
\>或\b //锚定词尾,其前面的任意单个字符必须作为单词尾部出现
[root@localhost src]# grep 'hello\b' a //显示以hello结尾的单词
hello liu hello yang hello
asbchello adajhello
分组
\()\
例: \(ab\)*
[root@localhost opt]# ls | grep '^\(ab\)*$'
ab
ababab
abababab
\1 //引用第一个左括号以及与之对应的右括号所包括的所有内容
\2 //引用第二个左括号以及与之对应的右括号所包括的所有内容
[root@localhost opt]# cat aba
hello a hello abc hello abaa hello adsbhsadgsa
asdghello asdghjhello asdjhello asdhghello
[root@localhost opt]# sed 's/hello \(.*\) \(.*\) /hello \2 \1/g' aba
hello hello a hello abc hello abaaadsbhsadgsa
asdghello asdjhello asdghjhelloasdhghello
扩展正则表达式
//区别(正则表达式有些特殊字符需要转义,而扩展的不需要,其用法一致)
+ //匹配其前面的任意单个字符至少1次
[root@localhost opt]# ls | grep -E '^a+$'
a
aaaaa
aaaaaaa
{m,n} //匹配其前面的任意单个字符至少m次,至多n次
[root@localhost opt]# ls | grep -E '^a{2,7}$'
aaaaa
aaaaaaa
分组
[root@localhost opt]# ls | grep -E '^(ab)*$'
ab
ababab
abababab
| //默认匹配|的整个左侧或者整个右侧的内容
[root@localhost opt]# ls | grep -E '^A$|^a$'
a
A
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~