免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3476 | 回复: 4

正则表达式一问 [复制链接]

论坛徽章:
0
发表于 2014-02-09 22:19 |显示全部楼层
  1.     $_ = "TomTomtomTom";
  2.     if ( /(tom)?(Tom)\1/ ) {
  3.         print "match\n";
  4.     }
复制代码
想问下,为什么这个匹配不到呢? 这里的\1反向引用的到底是什么值(我试着直接替换成tom或者Tom,都是匹配的)? 谢谢!

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
发表于 2014-02-10 08:46 |显示全部楼层
如果前面的第一个值没有取到,后面则作为\1
?表示一个或者没有

论坛徽章:
13
双鱼座
日期:2013-10-23 09:30:05数据库技术版块每日发帖之星
日期:2016-04-20 06:20:00程序设计版块每日发帖之星
日期:2016-03-09 06:20:002015亚冠之塔什干火车头
日期:2015-11-02 10:07:452015亚冠之德黑兰石油
日期:2015-08-30 10:07:07数据库技术版块每日发帖之星
日期:2015-08-28 06:20:00数据库技术版块每日发帖之星
日期:2015-08-05 06:20:002015年迎新春徽章
日期:2015-03-04 09:57:09辰龙
日期:2014-12-03 14:45:52酉鸡
日期:2014-07-23 09:46:23亥猪
日期:2014-03-13 08:46:22金牛座
日期:2014-02-11 09:36:21
发表于 2014-02-10 09:25 |显示全部楼层
如果第一个没匹配到\1为空

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
发表于 2014-02-10 11:24 |显示全部楼层
回复 1# Cloud.D.Ace

如果 (tom) 匹配了, 那么 \1 就是 tom, 所以, 你的 表达式 成了 tomTomtom, 这好象匹配不成功的. 你试着把 第一个换成 大写 Tom 第二个换成小写 tom, 或许可以.
   

论坛徽章:
0
发表于 2014-02-10 11:55 |显示全部楼层
bikong0411 发表于 2014-02-10 09:25
如果第一个没匹配到\1为空

谢谢大家的回复。应该是这个, 我尝试将Tom后面加了个空字符,显示匹配了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP