世界之窗论坛's Archiver

fratre 发表于 2007-1-10 18:37

请教一下如何用正则表达式匹配多行的标签

我希望能过滤掉[url=http://www.csdn.net]http://www.csdn.net[/url]的广告。
需要过滤掉的内容如下:
[code]
<div class="BodyBannerAd">
<!--
-->
<table><tr><td>
<script language='JavaScript' type='text/javascript'>show_ads_zone(27);</script>
</td><td width=15></td>
<td>
<script language='JavaScript' type='text/javascript'>show_ads_zone(28);</script>
</td><td width=15></td>
<td>
<script language='JavaScript' type='text/javascript'>show_ads_zone(29);</script>
</td></tr></table>
</div>

[/code]
类似上面的代码有多处。
现在csdn的广告图片都是用show_ads_zone(n)来显示,我直接用urlnn=http://zi.csdn.net/*的方式过滤不了(不知道是不是我自己使用上的问题)。
这样就想到用正则表达式来处理。
看了上面的广告显示代码就只要把<div class="BodyBannerAd">.*</div>这个tag过滤掉就行了。

我没想出来怎么匹配这样多行的标签。
我试着用:
ex0=<div class="BodyBannerAd">.*<\/div>
re0=
不过没用

请大家指点一下,我应该如何过滤这些广告。
谢谢

elkay 发表于 2007-1-10 19:23

如果你用firefox的话可以用页面元素规则来过滤
csdn.net#div(class=BodyBannerAd)

正则来过滤这段不会:cold:

Godot 发表于 2007-1-10 19:27

要匹配换行符或者用[\s\S]+来匹配。

记得“/”应该不作为特殊字符处理吧。

[[i] 本帖最后由 Godot 于 2007-1-10 19:37 编辑 [/i]]

fratre 发表于 2007-1-10 22:05

还是希望能有个详细些的说明,当然,如果能说明是用什么实现regex那就更好了,比如是否用Jscript的regexp对象来处理的,还是用一些regular expression库,还是自己写的。

象上面的"/"应该不是特殊字符,但我看置顶的示例中,第一个作为特殊字符处理了,第二个又没用,让我有些糊涂了

fratre 发表于 2007-1-11 11:28

没办法,还是得加一条
127.0.0.1    zi.csdn.net
到hosts里解决

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.