使用*
匹配
字符串中的单字符或其重复序列(与
文件名
置换中的"*"不一样)
1) * : 一个单字符后紧跟*,
匹配
0 个或多个此单字符。
2) 举例: compu*t 将
匹配
字符u
一次或多次,即
匹配
computer computing compuuute
1033* 可以
匹配
101333 10133 1013444
3) 在
正则表达式
中使用"*",有时会产生非预期的结果。
使用\屏蔽一个特殊字符的含义
1) \ : 用来屏蔽一个元字符的特殊含义。因为有时在
shell
中元字符有特殊含义。\可以使其失去应有意义。
2) 举例: 在
正则表达式
中
匹配
以*.pas 结尾的所有文件: \*\.pas$
使用[]
匹配
属于一个范围或集合单个字符
1) [ ] :
匹配
"[
]"内的字符。可以是一个单字符,也可以是字符序列。可以使用"-"表示括号"[ ]"内字符序列范围,
如用[1-5]代替[12345]。可以用逗号","分隔括号"[]"内的字符。
2) 当"^"符号当直接靠着"[",意指否定或不
匹配
括号"[]"里内容
3) 举例: [0-9]
匹配
任意一个数字;[a-z]
匹配
任意一个小写字母;[0-9A-Za-z]
匹配
任意字母或数字;
[C,c]omputer
匹配
Computer
和computer;[^a-zA-Z]
匹配
任一非字母型字符
使用"\{\}"
匹配
模式结果出现的次数
1) pattern\{n\}
:
匹配
模式pattern 出现n 次的情形。
2) pattern\{n,\} :
匹配
模式pattern 最少出现n 次的情形。
3) pattern\{,m\} :
匹配
模式pattern 最多出现m 次的情形。
4) pattern\{n,m\} :
匹配
模式pattern 出现次数在n
与m 之间的情形。
5) 举例: A\{2\}B
匹配
的值为AAB
A\{2,\}B
匹配
的值可以是AAB 或AAAAAB,但不能
匹配
AB
A\{2,4\}B
匹配
的值可以是AAB、AAAB、AAAAB,但不能
匹配
AB 或AAAAAB 等
[0-9]\{4\}CX[0-9]\{4\}
匹配
数字出现4
次后跟CX,最后是数字出现4 次的情形
6) 实际上真正的格式是 {n} {n,} {,m} {n,m},只不过对"{"和"}"应用了Esacpe 字符"\"。
经常使用的
正则表达式
举例
[Ss]igna[lL]
匹配
单词signal、signaL、Signal、SignaL
[Ss]igna[lL]\. 同上,但加一句点
^USER$
只包含USER
带句点的行
^d..x..x..x
对用户、用户组及其他用户、组成员有可执行权限的目录
^[^l]
排除符号链接文件后的文件目录列表(即不是以"l"开始的行)
[yYnN]
大写或小写y
匹配
行中任意字符串
^......$
包括6 个字符的行
[a-zA-Z]
任意单个字母
[a-z]*
至少一个小写字母
[^0-9\$]
非数字或美元符号
[123]
中一个数字
仅有一个字符的行
^\.[0-9][0-9] 以一个句点和两个数字开始的行
[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}