如何用正则表达式过滤掉html的script中的内容
我从网上搜了一些,效果都不好,特别是对下面第二种 有换行的情况可以过滤这两个样式的script:
1、<script language="javascript" src="include/js/tinyxmldom.js" type="text/javascript"></script>
2、<script language="javascript" type="text/javascript">
<!--
var c = new ContentAJAX("", "Content", "Status");
...
-->
  </script>
高手支招啊

解决方案 »

  1.   

    下面是我用过的例子,还有那个2中m.replaceAll("-------");怎么不起作用呢?替换不了
    1、String re=" <(\\s)*script(.|\\n( <?!script))*\\/script>(\\s)*"; 
    content=content.replaceAll("(?s)"+re, "");
    2、Pattern p=Pattern.compile(re,Pattern.DOTALL); 
    Matcher m=p.matcher(content); 
    while(m.find())
    {
    System.out.println("++++++++");
    }
    m.replaceAll("-------");
      

  2.   

    已经搞定   就是这样写
    re="<(\\s)*script[^>]*>([\\s\\S](?!<script))*?<\\/script>";
    <?!script))*这里的    ?!   是什么意思?
      

  3.   

    这个正则式子对于嵌套的script标签不能正确匹配
    如<script >
    document.write('<script >fsdfasdf</script>');
    </script>
    对这种类型的怎么办??