正则表达式中的原字符

来源:互联网 发布:淘宝级别后面的雷锋侠 编辑:程序博客网 时间:2024/05/03 19:30

正则表达式中的原字符

文件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