首页 新闻 搜索 专区 学院

正则高手速来救急

0
[已关闭问题] 关闭于 2012-01-26 01:36

网页源码点这里下载。因为登录后才能看到网页,所以就干脆把源码放到这里了。

下面这个表达式能匹配到两组,分别是 name=绿色, val=413 和 name=灰色 val=415

<a +href *="goods\.php\?id=(?<val>\d+)" +class="ucselect">\s*(?<name>\w+)\s*</a>

下面这个表达式匹配到一组,name=紫色, val=414

<a +class="ccselect" *><font +color=['"]?red['"]? *>\s*(?<name>\w+)\s*</font></a>[\s\S]*<a +href=['"]?javascript:addToCart\((?<val>\d+)\)['"]? *>

 

但我把这两个表达式合在一起,就是将它们分别放到|号的两边,却无法匹配到 name=灰色 val=415

求高人写个表达式,将以上三组结果全都匹配出来,或者指点下小弟,感激不尽。



考虑到高手可能没工夫看上面的源码,那么帮我解决一个相对简单的也行,原理是一样的,只要这个会了,上面的我也知道怎么做了。

文本:123456

要求用正则匹配出123456和3这两个结果到名称为name的组里


luotong的主页 luotong | 初学一级 | 园豆:7
提问于:2011-01-14 17:14
< >
分享
所有回答(2)
0

are you sure?正则在我映像中属于贪婪匹配模式,怎么会既匹配到3又匹配到123456。

而且你的第二个表达式也是无法匹配到源代码中的任何内容的。

massinger | 园豆:706 (小虾三级) | 2011-01-15 01:29
0

用|是应该可以匹配到的,但是效率不敢恭维;

你可以继续参照你的正则将2个正则的匹配结果合并就ok了

Shiaupo | 园豆:272 (菜鸟二级) | 2011-01-19 12:13
我试过了,是不行的
支持(0) 反对(0) luotong | 园豆:7 (初学一级) | 2011-01-19 12:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册