求正则表达式??????????????????
去掉注释<!-- -->
我用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);
}