首页 新闻 搜索 专区 学院

求一个正则表达式

0
悬赏园豆:5 [已解决问题] 解决于 2013-01-21 21:54
比如下面这段示例html ,里面有很多div,每个div中都有很多a标签和其它标签,请写一个正则,匹配id=div1中的所有a标签。
我已写了一个正则,但是性能太低:(?<=<div\s+id="div1"(?:(?!</div>)[\s\S])*?)<a>。
求高人写一个性能更高的正则。谢谢。
列出的html只是示例,比较短小,正则的性能问题不太明显。实际情况html复杂得多,性能影响很大,所以在此求一个性能更好的正则。
<div id="div0">
<li><a></li>
<li><a></li>
<li><a></li>
<li><a></li>
<li><a></li>
</div>
<div id="div1">
<li><a></li>
<li><a></li>
<li><a></li>
<li><a></li>
<li><a></li>
</div>
<div id="div2">
<li><a></li>
<li><a></li>
<li><a></li>
<li><a></li>
<li><a></li>
</div>
问题补充:

使用场景比较特殊,只能用正则表达式。

luotong的主页 luotong | 初学一级 | 园豆:5
提问于:2012-10-18 12:38
< >
分享
最佳答案
0

如果只是从一大堆html里找到div1,再找div1里的a标签,还不如先用SubString()取到div1这一段再用正则取其中的a标签。

收获园豆:5
向往-SONG | 老鸟四级 |园豆:4853 | 2012-10-18 15:59
其他回答(2)
0
var xpathExp='//div[@id="div1"]/a';
var result=document.evaluate(xpathExp, otherparas);

这种情况下用xpath

Ethan轻叹 | 园豆:996 (小虾三级) | 2012-10-18 12:51

只能用正则

支持(0) 反对(0) luotong | 园豆:5 (初学一级) | 2012-10-18 13:31
0

用jq ,$(html).children("#div1 a")行吗?

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-10-18 16:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册