基本元字符集及其含义:
^ | 只匹配行首 |
$ | 只匹配行尾 |
* | 只一个单字符后紧跟*,匹配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 |
[^.*$] | 匹配任意行 |