求正则表达式??????????????????
去掉注释<!-- -->
我用str.replaceAll("<!--.*-->","");不行啊。。。。
[解决办法]
的确有异常的情况。
第一次抛出异常,由于<!--太多,所以匹配的就很多,造成放在堆栈的可以回溯数据很多,而java的线程的stack都是有限的,当放的数据大于stack的大小时,就会抛出StackOverflow的异常。
所以,正则公式改了一下,改为固化分组,当匹配了,就不会回溯了。
下面改了下,测试没问题。有问题再改进下。
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); }