Board logo

标题: ===这个规则怎么写??????? [打印本页]

作者: hess    时间: 2009-11-10 20:05     标题: ===这个规则怎么写???????

本帖最后由 hess 于 2009-11-10 20:10 编辑
  1. <div id="news">
  2. <h3 id="news_title">香港中文大学研发出图片合成动画系统</h3>
  3. <p id="news_font"> </p>
  4. <p id="news_author"><span>ugmbbc发布于 2009-11-10 18:22:27|<script src="/counter.php?sid=97504"></script> 次阅读 字体:<a href="javascript:fontZoomB();">大</a> <a href="javascript:fontZoomA();">小</a> <a href="http://m.cnbeta.com/print.php?sid=97504" target=_blank>打印预览</a></span></p>
  5. <script type="text/javascript" language="javascript">var ReTitle = '回复:香港中文大学研发出图片合成动画系统';</script>
  6. <div id="news_content"><a href="/topics/260.htm" ><img src="http://img.cnbeta.com/topics/latest.gif" alt="cnBeta 最新消息" name="sign" align="right" id="sign" onload="fixPNG(this)"/></a>
  7. <div class="digbox">
  8. <div class="dig" id="dig97504">0</div>
  9. <div class="digaction" id="action97504"><a href="javascript:dig(97504);" style="color:white">顶一下</a></div>
  10. <div id="loading97504" class="digload"></div>
  11. <div id="reply97504"></div>
  12. </div>
  13. <script type="text/javascript"><!--
  14. google_ad_client = "pub-9066977823953139";
  15. google_alternate_color = "E5ECF4";
  16. google_ad_width = 234;
  17. google_ad_height = 60;
  18. google_ad_format = "234x60_as";
  19. google_ad_type = "text_image";
  20. //2007-08-31: 页内文末
  21. google_ad_channel = "0839583543";
  22. google_color_border = "E5ECF4";
  23. google_color_bg = "E5ECF4";
  24. google_color_link = "0000FF";
  25. google_color_text = "000000";
  26. google_color_url = "008000";
  27. //-->
  28. </script>
复制代码


我要过滤掉13-28行,怎么写规则,我写的规则把前面的<script>也包括进去了。
下面是我的规则
  1. <script[\w" \/]*?>(?:[\s\S]*?)google_(?:[\s\S]*?<\/script>)
复制代码

作者: hess    时间: 2009-11-10 20:28

消灭0回复
作者: 极品小猫    时间: 2009-11-10 20:38

  1. #exd#*网址*#<script[^>]*?>\s*(?:<!--)?google_ad[\s\S]*?<\/script>###
复制代码
能匹配有<!--与无<!--的Google广告
作者: hess    时间: 2009-11-10 21:32

还是没有过滤到
作者: hess    时间: 2009-11-10 21:38

  1. <script[^>]*?>\s*(?:<!--)?\s*google_ad(?:[\s\S]*?<\/script>)
复制代码
改成这样就可以了,但通用性就不强了
作者: 极品小猫    时间: 2009-11-10 22:50

抱歉, 我的疏忽, 就是少了那个\s*
  1. #exd#*网址*#<script[^>]*?>\s*(?:<!--)?\s*google_ad[\s\S]*?<\/script>###
复制代码
楼主后面的(?:)是没必要的
作者: hess    时间: 2009-11-11 08:46

加个?:为非获取性的吗,节约资源吧
作者: 极品小猫    时间: 2009-11-11 11:04

但是当你不使用()的时候, 你还有必要再写一个?:吗?
只能说此举多余
作者: hess    时间: 2009-11-12 09:58

哦,对正则还不是很了解,依葫芦画的




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn./) Powered by Discuz! 7.2