免费注册 查看新帖 |

Chinaunix

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

[文本处理] 正则表达式转义和后向匹配问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-12 09:17 |只看该作者 |倒序浏览
今天看了一点正则表达式和后向匹配的知识,然后找了个实例,发现不明白了
实例:\(ab\)\(cd\).*\2\1 匹配字符串:abcdeeeecdab

看了之后有疑问,我觉得匹配字符串应该是(ab)(cd)eeeecdab
我的理解是:\是转移字符,\(就是要匹配(的,\)也是要匹配)的,所以在匹配结果中,不能少了()的。\2表示的是第二个()内的内容后向匹配,第二个()内的内容是cd,所以\2匹配的是cd,\1匹配的是第一个()内的内容,第一个()内的内容是ab,所以\1匹配的是ab。连起来,匹配的结果应该是(ab)(cd)eeeecdab
不知道我的理解上哪里错了,请大家指教~

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
2 [报告]
发表于 2013-08-12 09:21 |只看该作者

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
3 [报告]
发表于 2013-08-12 09:25 |只看该作者
在正则表达式中,加了反斜杠的才具有特殊意义,目测楼主是sed的-r参数用多了,所以对正则原来的转义搞混了~

论坛徽章:
0
4 [报告]
发表于 2013-08-12 18:05 |只看该作者
本帖最后由 wy200747055 于 2013-08-12 18:14 编辑

http://www.cnblogs.com/deerchao/ ... aocheng.html#escape
我是在看的这个网页学的正则表达式。网页上对于\的介绍是这样的:
“如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定它们,因为它们会被解释成别的意思。这时你就得使用\来取消这些字符的特殊意义。因此,你应该使用\.和\*。当然,要查找\本身,你也得用\\. 例如:unibetter\.com匹配unibetter.com,C:\\Windows匹配C:\Windows。”
\是去除后面紧邻字符的特殊含义的。是去除后面紧邻字符的特殊含义的。
没理解错的啊。大神,求指教~
回复 3# yestreenstars


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP