首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

求正则表达式?解决方法

2012-02-26 
求正则表达式??????????????????去掉注释!-- --我用str.replaceAll(!--.*--,)不行啊。。。。[解决办

求正则表达式??????????????????
去掉注释<!-- -->
我用str.replaceAll("<!--.*-->","");不行啊。。。。

[解决办法]
的确有异常的情况。
第一次抛出异常,由于<!--太多,所以匹配的就很多,造成放在堆栈的可以回溯数据很多,而java的线程的stack都是有限的,当放的数据大于stack的大小时,就会抛出StackOverflow的异常。

所以,正则公式改了一下,改为固化分组,当匹配了,就不会回溯了。

下面改了下,测试没问题。有问题再改进下。

Java code
    public static void main(String[] args) throws IOException {         Reader reader = new InputStreamReader(FilterJSComment.class.getResourceAsStream("/server.xml"),"utf-8");            char buffer[] = new char[1000];            int i=0;            StringBuilder sb = new StringBuilder();            while((i=reader.read(buffer))!=-1){                sb.append(buffer,0,i);            }            reader.close();            String str = sb.toString();            System.out.println(str);                        String h = str.replaceAll("<!--(?>\\n\\r|\\r|\\n|.)*?-->", "");            System.out.println(h);    } 

热点排行