bxstudio 发表于 2012-4-20 09:58:43

关于提取网址上的信息的疑问

我要提取的信息的网址是http://www.ratjyy.com/qlxy/4303,我要提取末尾的4303这4个数字,但是我用前后截取的时候因为后面是空的,无法截取,我用正则http://www.ratjyy.com/qlxy/(?<content>[\s\S]*?),为什么提取的是网址全部,而不是就4303,这个格式要如何写?

冷若寒冰 发表于 2012-4-20 10:01:08

QQ群 35940731
加群注明来意

进群,找我,我帮你处理下。

zhouchanglin 发表于 2012-4-21 20:56:28

本帖最后由 zhouchanglin 于 2012-4-21 20:57 编辑

我做了几个正则的测试,通过测试可以大致知道火车头正则的适用性。

测试地址:http://www.ratjyy.com/qlxy/4303
测试1:
正则:http:\/\/www\.ratjyy\.com\/qlxy\/(?<content>[\s\S]*)结果:4303

测试2:http://www.ratjyy.com/qlxy/(?<content>[\s\S]*)
结果:4303
1,2表明 由于正则有些元字符是首先要转义,我想这个地方火车头是自动转义了特殊字符吧。

测试3:
正则(非贪婪模式):/(?<content>\d*?)
结果:空字符,什么也没有匹配,因为非贪婪,*代表0-任意个数字,当然取0个了。

测试4:
正则(贪婪模式 )/(?<content>\d*)匹配尽可能多的数字
结果:4303

通过3,4测试是你的那个正则没有匹配的原因,我想你的正则是应该得到的为空而不是地址全部

所以修改成贪婪模式,去掉?就可以了


页: [1]
查看完整版本: 关于提取网址上的信息的疑问