免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 997 | 回复: 0
打印 上一主题 下一主题

grep的正则表达式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-11 22:26 |只看该作者 |倒序浏览

                grep的正刚表达式中可以作为特殊字符的有\ ^ $ . [ ] & 另外加上 \( \) \{ \} [: :]
    ^字符有两个特殊的含义,作为[]内的第一个字符时,意味着取反(NOT),如果出现在第一个位置之后的任何地方,就失去特殊字符的意义了,如果在[]外使用^意味着“在一行的开始处查找其后指定的字符”,如果需要搜索^字符得用转义字符,即:\^
    类似的,$意味着“在行的结尾查找前面的字符串”,如果在[]中使用或和以\$形式使用时将失去特殊含义
例如:
grep "^$" main.cc
在main.cc中查找空行
    通配符,和DOS和shell下不同,这里的通配符有 . * ,*号表示对前边的字符匹配任何次数,如:"X*"表示匹配"X","XX","XXX",……,但不匹配"XY","XZ",……等不匹配X的字符串,.号匹配任何单个字符,如"X*",匹配"XY","XZ",……等X后跟任何单个字符,结合起来用".*"就表示DOS和Shell下的*匹配任何字符串,包括空串,"..*"表示匹配任何非空串
    ^$.*这四个字符只有在[]外并且没有\前缀时才有特殊意义,.$在[]任何地都作为普通字符,^*只有在第一个位置时才有特殊意义,且有相同意义,例如:i[^b]m和i[*b]m匹配除ibm外任何字符串
    在[]搜索ascii字符范围内的一个匹配字符,为省事可以使用短横线(减号)“-”形成范围搜索,例如:
[a-z] 匹配任何小写字符
[a-A] 非法,因为在ascii值中,a在A之后
[9-<] 合法
-号在[后的所有普通字符前时无特殊意义,作为[]中的最后一个字符时也无特殊意义,其它位置只能用作为范围符号,即使用\转义也不行
书上还说?号在[]内时有特殊意义,不过只是提了一下

               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/80326/showart_1407200.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP