Shell 正则表达式总结及其含义举例
Shell 正则表达式总结及其含义举例
基本元字符集及其含义:
^ |
只匹配行首 |
$ |
只匹配行尾 |
* |
只一个单字符后紧跟*,匹配0个或多个此单字符 |
[ ] |
只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用 - 表示[ ]内字符序列范围,如用[1-5]代替[12345] |
\ |
只用来屏蔽一个元字符的特殊含义。因为有时在s h e l l中一些元字符有特殊含义。\可以使其失去应有意义 |
. |
只匹配任意单字符 |
pattern\{n\} |
只用来匹配前面pattern出现次数。n为次数 |
pattern\{n,\}m |
含义同上,但次数最少为n |
pattern\{n,m\} |
含义同上,但pattern出现次数在n与m之间 |
常用举例:
^ |
行首 |
$ |
行尾 |
^[the] |
以the开头行 |
[Ss]igna[lL] |
匹配单词signal、signaL、Signal、SignaL |
[Ss]igna[lL]\. |
同上,但加一句点 |
[mayMAY] |
包含may大写或小写字母的行 |
^USER$ |
只包含USER的行 |
[tty]$ |
以tty结尾的行 |
\. |
带句点的行 |
^d..x..x..x |
用户、用户组及其他用户组成员有可执行权限的目录 |
^[^l] |
排除关联目录的目录列表 |
[.*0] |
0之前或之后加任意字符 |
[000*] |
000或更多个 |
[iI] |
大写或小写I |
[iI][nN] |
大写或小写i或n |
[^$] |
空行 |
[^.*$] |
匹配行中任意字符串 |
^......$ |
包括6个字符的行 |
[a-zA-Z] |
任意单字符 |
[a-z][a-z]* |
至少一个小写字母 |
[^0-9\$] |
非数字或美元标识 |
[^0-0A-Za-z] |
非数字或字母 |
[123] |
1到3中一个数字 |
[Dd]evice |
单词device或Device |
De..ce |
前两个字母为De,后跟两个任意字符,最后为ce |
\^q |
以^q开始行 |
^.$ |
仅有一个字符的行 |
^\.[0-9][0-9] |
以一个句点和两个数字开始的行 |
'"Device"' |
单词device |
De[Vv]ice\. |
单词Device或device |
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\} |
日期格式dd-mm-yyyy |
[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\} |
IP地址格式nnn.nnn.nnn.nnn |
[^.*$] |
匹配任意行 |
评论暂时关闭