首页 新闻 会员 周边 捐助

来求HTML标签正则匹配。。。。。。

0
悬赏园豆:50 [已解决问题] 解决于 2013-07-23 14:11

匹配以下代码中<FONT id=Zoom>........</FONT>之间的内容,因为中间有多个font标签,所以需要成对匹配,其实<FONT id=Zoom>........</FONT>之间的内容就是新闻内容,所以存在不确定的HTML标签个数。谢各位高人帮忙!谢谢!

 1 ......
 2 <TR>
 3     <td width="5%"></td> 
 4     <td style="......" vAlign=top width="90%">
 5         <FONT id=Zoom>
 6         ........
7 <p><span><FONT style="FONT-SIZE: 10.5pt">这里是文字内容1。。。。。</FONT></SPAN></p> 8 <p><Font styel=".....">这里是文字内容2。。。。</Font></p> 9 <div style="....."><font sytle=".....">这里是文字3。。。。</font></div> 10 ........ 11 </FONT> 12 </td> 13 </TR> 14 ......
whb1573的主页 whb1573 | 初学一级 | 园豆:129
提问于:2013-03-14 14:50
< >
分享
最佳答案
0

可以了解一下平衡组,如果html本身比较规范的话(例如开始标记和结束标记是一一对应的)

http://deerchao.net/tutorials/regex/regex.htm#balancedgroup

收获园豆:30
陈希章 | 老鸟四级 |园豆:2538 | 2013-03-15 08:28

平衡组我看过,但是ASP不支持命名分组,看来我得需要找其他方法了。

whb1573 | 园豆:129 (初学一级) | 2013-03-15 12:42

@whb1573: 是的,平衡组只能用在。NET里面

陈希章 | 园豆:2538 (老鸟四级) | 2013-03-15 12:46
其他回答(2)
0

<font[^>]*>((?!font).)*</font>

收获园豆:10
Yu | 园豆:12990 (专家六级) | 2013-03-14 15:36

这个不行

支持(0) 反对(0) whb1573 | 园豆:129 (初学一级) | 2013-03-14 22:23

@whb1573: 可以取出啊 怎么不行

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-03-14 22:31

@Yu: 在实际的应用当中取不出来,我只是贴了主要框架代码,实际在页面源代码中有很多font。我只想取出<font id=zoom>...</font>之间的内容。

支持(0) 反对(0) whb1573 | 园豆:129 (初学一级) | 2013-03-15 12:40

@whb1573: 那你可以先取出

<font id=zoom>...</font>

再用上面的表达式

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-03-15 12:47
0
<(?<HtmlTag>[\w]+)[^>]*\sid=(?<Quote>["']?)Zoom(?(Quote)\k<Quote>)["']?[^>]*>(((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*)</\k<HtmlTag>>

这个绝对可以,我的爬虫就是用这个。

收获园豆:10
geass.. | 园豆:1821 (小虾三级) | 2013-03-15 13:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册