免费注册 查看新帖 |

Chinaunix

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

?<=pattern 后向肯定到底如何使用 [复制链接]

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-12-12 10:25 |只看该作者 |倒序浏览
看了看书上的例子,理解的不深,有了解的朋友说一下具体的用法,最好有个例子,谢谢

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
2 [报告]
发表于 2014-12-12 10:34 |只看该作者
  去看环视
主要是体现一个位置关系
http:##unmi.cc#regexlookaround#

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
3 [报告]
发表于 2014-12-12 10:36 |只看该作者
回复 2# 银风冷月
在详细点说一下呗,来个例子


   

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
4 [报告]
发表于 2014-12-12 11:05 |只看该作者
例子:123456abc78
这里主要说的是一个位置,1前面的位置为0,1和2中间的位置为1,以此类推
表达式:(?<=\d)\d+
这个会匹配什么呢?
(?<=pattern)此式子是顺序肯定,即从左往右的位置来表示0位置之前非数字即\d,所以表达式执行失败,后续的\d+不执行,位置+1,位置1之前是数字1,表达式成立,执行\d+,匹配后续的数字,直到位置7,前方是数字6,表达式(?<=\d)返回True,执行\d+,但是其后并非数字,匹配失败,继续回头执行(?<=\d),数字7前方的位置10,前方是字母c,表达式整体是False不输出7,位置11前方是数字7,\d+也匹配8故输出8
最后匹配的是23456 8

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
5 [报告]
发表于 2014-12-12 11:05 |只看该作者
语言表达能力不行,将就看下吧

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
6 [报告]
发表于 2014-12-12 11:10 |只看该作者
本帖最后由 HH106 于 2014-12-12 11:10 编辑

预搜索,匹配一个位置
  1. A[wait_file_num]B[wait_file_num]

  2. 正则:  (?<=A).*?+(?=])
复制代码
意思就是A之后,]之前这二个位置,但结果中不包括A]
这个匹配A[wait_file_num]B 中的[wait_file_num,而不匹配B[wait_file_num]后的[wait_file_num

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
7 [报告]
发表于 2014-12-12 11:53 |只看该作者
?=pattern为前向肯定  用法:(xxxx)(?=pattern) 只有(?=pattern)匹配的情况下,才会去匹配(xxxx)
?<=pattern为后向肯定   用法 (?<=pattern)(xxxx)  只有(?<=pattern)  匹配的情况下,才会去匹配(xxxx),匹配的结果不捕获(?<=pattern)这段

楼上的两位,我这么理解对吗?

论坛徽章:
9
2015亚冠之阿尔纳斯尔
日期:2015-09-10 16:21:162015亚冠之塔什干火车头
日期:2015-07-01 16:23:022015年亚洲杯之巴勒斯坦
日期:2015-04-20 17:19:46子鼠
日期:2014-11-13 09:51:26未羊
日期:2014-08-28 18:13:36技术图书徽章
日期:2014-02-21 09:30:15酉鸡
日期:2014-01-14 11:12:49天蝎座
日期:2013-12-09 17:56:53平安夜徽章
日期:2015-12-26 00:06:30
8 [报告]
发表于 2014-12-12 12:00 |只看该作者
回复 7# super皮波

基本正确,有些小问题,正则表达式是顺序从左向右匹配


   

论坛徽章:
2
白羊座
日期:2014-06-17 11:04:28午马
日期:2014-12-29 15:37:13
9 [报告]
发表于 2014-12-12 13:55 |只看该作者
回复 7# super皮波

(xxxx)(?=pattern) 这个表达式是(xxxx)可以匹配了,然后看(?=pattern)是否正确,如果整个式子是True,才会返回(xxxx)
例子:1234abc56
正则:\d(?=\d)
这里匹配的是123 5
就是因为位置原因,先匹配到数字1,位置是1,而位置1后面的是数字2,符合(?=\d),故匹配1;\d匹配数字4,4的后方是字母a不符合(?=\d)故不输出;数字6的位置是9,位置9后面是空,故不输出6

论坛徽章:
46
2015小元宵徽章
日期:2015-03-06 15:58:18羊年新春福章
日期:2015-04-14 10:37:422015年亚洲杯之阿曼
日期:2015-04-14 10:41:50NBA常规赛纪念章
日期:2015-05-04 22:32:03NBA季后赛大富翁
日期:2015-05-04 22:34:11菠菜明灯
日期:2015-05-04 22:35:49新奥尔良黄蜂
日期:2015-05-04 22:49:2315-16赛季CBA联赛之广夏
日期:2015-12-11 15:02:342015年亚洲杯之巴勒斯坦
日期:2015-03-04 19:56:562015年亚洲杯之阿联酋
日期:2015-03-04 11:19:04休斯顿火箭
日期:2015-03-02 16:32:11纽约尼克斯
日期:2015-03-02 16:09:04
10 [报告]
发表于 2014-12-12 14:27 |只看该作者
多谢楼上的几位朋友
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP