问一个正则表达式的溢出问题:
通过正则表达式替换字符串报 java.lang.StackOverflowError:
Public static String wipeString(input){
String re="<(\\s)*script(.|\\n(<?!script))*\\/script>(\\s)*";
Pattern p=Pattern.compile(re,Pattern.dotall+Pattern.multline);
Matcher m=p.matcher(input);
return input.replaceAll("");
}
,字数大概少于2000字符时没问题,多了就报java.lang.StackOverflowError:
,设置了或不设置flag为Pattern.dotall+Pattern.multline都没效果,寻求高手解惑

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【zxp8216】截止到2008-07-21 11:05:44的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:0.00  %               结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
      

  2.   

    哈哈,我就想到你用 .|\\n 了,不能用这个,直接使用 . 加上 Pattern.DOTALL 就可以了。
      

  3.   

    在jquery中找到一个过滤script的正则表达式,证实可以过滤嵌套的
    如:str.replace(/<script(.|\s)*?\/script(\s)*>/gi,"")