linux正则表达式

感谢http://www.oodsnx.com/thread/89.html的支持


介绍:bash shell本身不支持正则表达式,使用正则表达式的是shell的一些命令和工具,如grepsedawk等等
但是bash可以使用正则表达式中的一些元字符实现通配的功能,此时的这些元字符叫通配符。
此时元字符的意义跟正则表达式中元字符的意义就不一样了。 

基本正则表达式中元字符的意义如下:

1.   *      匹配*前面的那一个字符的0次或多次

如hel*o       heo  helo  hello  helllo  ......

2.   .     匹配任意一个字符(只匹配一个,可以是空格)

如ab.         abc  abd   ab3   ab   ......

3.   ^     匹配行首,行首的字符序列必须是^后的字符序列

如^suda       sudahuhuhuuuuuhuuh      sudaokokokokokoko   ......

4. $   匹配行尾,行尾的字符序列必须是$前的字符序列

 
如suda$ jijijisuda lijhuhsuda ......

特殊的:

1、  ^$      匹配一个空行

2、 ^.$      匹配只有一个字符的空行

5.    []          匹配字符集合中的任意一个字符(只匹配一个)

[1234]  [1-4]             匹配1234的任意一个字符

注意:^放在[]里面时,不再表示匹配行首,而是取反的意思

特殊的:

[^1234]  [^1-4]       匹配不是1234的任意一个字符

[a-z][A-Z]* 匹配任意一个英文单词

6.   \     用于转义元字符,使之成为普通字符

*       此时*表示一个普通字符

7.{}系列符号

{n}       匹配前面字符的n次

{n}      匹配前面字符的至少n次

{nm}     匹配前面字符的n-m次,至少n次,至多m次

如JO{3}B    匹配JOOOB

如JO{3}B   匹配JOOOB  JOOOOB   ……

如JO{36}B  匹配JOOOB  JOOOOB   JOOOOOB   JOOOOOOB   

扩展的正则表达式中元字符的意义如下:

1.    ?    匹配前面的那一个字符的0次或1次

如JO?B      匹配   JB     JOB    JOOB

2.    +     匹配前面的那一个字符的1次或多次

如JO+B      匹配   JOOB   JOOOB   ……

3.    |与()通常结合使用,表示一组可选的字符集合

如re(a|o|e)d     匹配read  reod  reed,等同于re[aoe]d     

通配中的元字符的意义如下: 

1.     *       表示任意多的任意字符 

2. ? 表示一个任意字符

3. ^ 表示取反

4. [] 同正则表达式的用法

5. {} 表示一组表达式的集合

注意:{}中表达式是或的关系 

ls -l  {.cpp  [1234].c}          意思是列出满足表达式.cpp或者[1234].c的文件。

这里写图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值