求一个能匹配HTML中<script ...>....</script>标签的正则表达式???

RT:求一个能匹配HTML代码中....标签的正则表达式???

HTML代码可以看成是一个字符串,我试了好多帖子中的正则表达式,自己也写过,都有问题。比如对 搜狐 的首页进行匹配。
我自己写的:
String html = html .replaceAll("", ""); (不考虑HTML Code换行,我已经去掉换行了)

老外帖子上找的:
String html = html .replaceAll("))*+", "");
希望有哥们指点! 谢谢!!!

要能匹配有嵌套HTML标签的,(可以不考虑换行问题),样本如下:

... .... document.writeln("<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>"); .... ... .... document.writeln("<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>"); .... ....

[code="java"]
str=str.replace(/</g,'<');
str=str.replace(/>/g,'>');
var reg=/]*&gt;.*(?=&lt;\/script&gt;)&lt;\/script&gt;/gi;<br> alert(str.replace(reg,&#39;&#39;));<br> [/code]<br> 怀疑是HTML转义的问题<br> 我一般都用replace();js不像java 不知道有没replaceAll这玩意<br> 后面带的g就是all的意思</p>

[b]*?[/b]

[code="java"]
var str='

'+
' ... '+
' &#39;+<br> &#39; .... &#39;+<br> &#39; document.writeln(&quot;<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>&quot;); &#39;+<br> &#39; .... &#39;+<br> &#39; &lt;\/script&gt; &#39;+<br> &#39; ... &#39;+<br> &#39; <script type=\'text/javascript\' ...> &#39;+<br> &#39; .... &#39;+<br> &#39; document.writeln(&quot;<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>&quot;); &#39;+<br> &#39; .... &#39;+<br> &#39; &lt;\/script&gt; &#39;+<br> &#39; .... &#39;+<br> &#39;</div> &#39;;<br> alert(str);<br> var reg=/<script[^>]*&gt;.*(?=&lt;\/script&gt;)&lt;\/script&gt;/gi;<br> alert(str.replace(reg,&#39;&#39;));<br> [/code]</p>

:x 你不会是说要像java这样的正则吧 抱歉 我没搞过java的正则

[b]少写了个点
.*?[/b]
[code="java"] public static void main(String[] args) {
String str ="

.......&quot;+<br> &quot;document.writeln(\&quot;<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>\&quot;);&quot;+<br> &quot;.... ..."+
"&quot;+<br> &quot;....document.writeln(\&quot;<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>\&quot;);&quot;+<br> &quot;........
";
    str = str.replaceAll("<script\\b.*?>.*?</script>", "");

    System.out.println(str);

}[/code]

[code="java"]
str=str.replace(/</g,'<');

str=str.replace(/>/g,'>');

var reg=/]*&gt;(.|\n)*?(?=&lt;\/script&gt;)&lt;\/script&gt;/gi;<br><br> alert(str.replace(reg,&#39;&#39;));<br> [/code]<br> 上次没考虑换行符号 帮你测试了 没问题<br> PS:今天还上班 很郁闷</p>

我有一个API文档 你可以看看 里边有正则表达式的详细介绍
[url]http://doc.51windows.net/jscript5/?url=/jscript5/html/jsoprinstanceof.htm
[/url]

[code="java"]

var str = "<div>\n ... <script type=\'text/javascript\' ...>\n ....\n document.writeln(\'<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>\');\n"; str = str + " ....\n \<\/script\>\n ...\n <script type=\'text/javascript\' ...>\n ....\n"; str = str + "document.writeln(\'<h1>在JS代码里也可能会嵌套HTML标签等等,各种符合语法的嵌套</h1>\');\n ....\n \<\/script\>\n ....\n\<\/div\>\n"; alert(str); var reg = /<\s*script.*>(\s*|\S*)*<\/\s*script\s*>/gim; alert(str.replace(reg,''));

[/code]

Pattern p = Pattern.compile("(?is)]*?&gt;.*?&lt;\/script&gt;&quot;);<br> Matcher m = p.matcher(html);<br> return m.replaceAll(&quot;&quot;);<br> 记得给分哦!</p>

Pattern p = Pattern.compile("(?is)]*?&gt;.*?&lt;\/script&gt;&quot;); <br> Matcher m = p.matcher(&quot;你要判断的字符串如:<script language=vbscript >3333333333");
return m.replaceAll("");

Pattern p = Pattern.compile("(?is)]*?&gt;.*?&lt;\/script&gt;&quot;);<br> Matcher m = p.matcher(&quot;要判断的字符串<script type= >3433");

    try{
        if(m.start()>-1){
            System.out.println("存在");
        }
    }catch(IllegalStateException e){
        if(m.matches()){
            System.out.println("存在");
        }else{
            System.out.println("不存在");
        }
    }