正则表达式中的原字符
文件number
1
5
10
50
100
500
1000
5000
12 34 #一个空格
12 34 #两个空格
12 34 #三个空格
1. *: 匹配它前面字符的零个或多个出现, 如,
grep "[15]0*" number
=>
1
5
10
50
100
500
1000
5000
grep "[15]00*" number
=>
10
50
100
500
1000
5000
grep " *" number #两个空格*来匹配“一个或多个空格”
=>
12 34
12 34
12 34
再例:
I can do it
I can not do it
I cannot do it
I can't do it
I cant do it
grep "can[ no']*t" cando
=>
I can not do it
I cannot do it
I can't do it
I cant do it
2. . : 匹配任何单个字符
I can do
I can not do it
I cannot do it
I can't do it
I cant do it
grep "can.*t" cando #匹配can与t之间至少一个字符的行
=>
I can not do it
I cannot do it
I can't do it
I cant do it
3. + : 匹配前面字符的一次或者多次出现
空格空格* == 空格+, 但注意的是在grep中,如果使用+为正则表达式,要加/
grep " /+" number
=>
12 34
12 34
12 34
4. ? : 匹配零次或者一次出现, 不过在grep中使用,也要加 /
grep "10 /?" number #相当于 grep "10 *" number
=>
10
100
1000
5. .* : 将字符. 和 * 连接起来使用,可以匹配任意字符的零次或者多次出现
例:
book
booky
booklish
bookworm
grep "book.*" bookword
=>
book
booky
booklish
bookworm