我想从Java代码中删除所有多行注释,我现在使用以下REGEX导致StackOverflowError
。
String regexMultiLine = "(?<!\"/)(/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+/)";
Exception in thread "main" java.lang.StackOverflowError at java.util.regex.Pattern$GroupHead.match(Pattern.java:4569)
我正在使用上面的REGEX以及以下代码:
content = content.replaceAll(regexMultiLine,"");
我想删除文件中所有注释掉的代码。有些情况"//*
不是评论的开头,我不想删除。
如何重新编写此REGEX,以免导致此问题?
答案 0 :(得分:0)
据推测,你的程序不需要很多总内存(一个源文件不能那么大)。您是否尝试使用-Xss123m增加堆栈大小(其中123可以是您需要的任何值)?假设你的正则表达式工作(你在几个非常简单的测试用例上试过它)并且它只是在一个更大的文件上遇到麻烦,我建议测试一些堆栈大小的增加,看看是否有一个点在其允许它的原因之内完成。