1.使用句点匹配单字符
句点 "." 可以匹配任意单字符。
在ls -l命令中 可以匹配一定的权限
下面命令列出所有权限(所有用户)具有执行权限
# ls -l | grep ...x..x..x
drwxr-xr-x 2 root root 4096 05-22 12:52 bin
drwxr-xr-x 4 root root 1024 05-21 17:11 boot
drwxr-xr-x 11 root root 4080 05-28 15:11 dev
下面例子解释为前四个字符是任意 后一个必须为A 最后一位任意字符
....A.
1234A7
3487A0
2.在行首以^匹配字符或单词字符序列
只允许在一行的开始匹配字符或单词
下面命令解释为 每行第一个字符是d
# ls -l | grep ^d
drwxr-xr-x 15 root root 4096 2008-10-30 usr
drwxr-xr-x 22 root root 4096 05-21 17:15 var
下面命令解释为 结果将匹配每行开始为007的字符串或单词
# ls -l | grep ^007
将以上两种结合起来使用
下面命令解释为 在每行开始 匹配任意三个字符 后跟4XC 最后为任意4个字符 ^在正则中使用频繁
^...4XC....
1234XC0099 -match
1235XC0099 -no match
在行首前四个字符为good 匹配命令如下
^good
3.在行尾以$匹配字符串或字符
可以说$与^正好相反 它在行为匹配字符串或字符
下面命令解释为 假定要匹配以good结尾的所有行
good$
如果要匹配所有行 如下命令
^$
返回值包含一个字符的行
^.$
4.使用*匹配字符串中的但字符或其重复序列
下面命令解释 将匹配字符u一次或多次
compu*t
computer
computing
compuut
compuuuuuuut
下面命令解释 匹配3一次或多次
123*
123
123333
123444444
1233344
5.使用/屏蔽一个特殊字符的含义
有时候查找一些字符或字符串,而它们包含了系统指定为特殊字符的一个字符
特殊字符:$?+^[]"
假定要匹配包含字符"."的各行而"."代表匹配任意字符的特殊字符 因此需要屏蔽其含义 操作如下:
/.
上面模式不认为反斜杠后面的是特殊字符(1.使用句点匹配单字符)而是一个普通的字符
6.使用[]匹配特定字符或字符串集 可以用逗号将括弧内要匹配的不同字符串分开
使用"-" 表示一个字符串范围 表明字符串范围从 "-"左边字符开始 到"-"右边字符结束
假定要匹配任意一个数字 如下命令
[0123456789] 或 [0-9]
匹配任意小写字母
[a-z]
匹配任意字母
[A-Za-z]
任意字母或数字
[A-Za-z0-9]
下面命令解释为 匹配一个单词 以s开头中间有一个任意字母 以t结尾
s[A-Za-z]t
下面解释为将匹配Computer 或 computer
[Cc]omputer
将匹配system后跟句点的所有单词
[s]ystem/.
注意: 当^直接使用在第一个括号内 表示否定或不匹配[]中的内容
匹配任一非字母型字符 [^A-Za-z]
匹配任一非数字型字符 [^0-9]
7.使用 /{/} 匹配模式结果出现的次数
使用*可匹配所有匹配结果任意次 如果只想要知道次数 就需用/{/}
三种形式:
pattern/{n/} 匹配模式出现n次
pattern/{n,/} 匹配模式出现最少n次
pattern/{n,m} 匹配模式出现n到m次之间 n,m为0-255中任意整数
匹配值出现两次
A/{2/}B
匹配值为:AAB
匹配A至少出现4次
A/{4,/}B
匹配值为:
AAAAB或AAAAAAAB或AAAAAAAAAAAAB
匹配A出现的次数范围在2到4次直接
A/{2,4}B
匹配值为:AAB、AAAB、AAAAB 不能为AB 、AAAAAB、AAAAAAAAAAAAAAB