regex / java stackoverflow错误

时间:2017-12-13 23:10:08

标签: java regex

以下正则表达式从网页文本中删除列表和菜单

String s = fileContent.replaceAll("(([A-Za-z&—:\\-\\/\\d ])*(\\n|\\r|\\r\\n)){5,}","");

它对成千上万的文件没有任何问题。今天,它给了我一个stackoverflow:

  

java.lang.StackOverflowError at   java.util.regex.Pattern $ 5.isSatisfiedBy(Pattern.java:5251)at at   java.util.regex.Pattern $ 5.isSatisfiedBy(Pattern.java:5251)at at   java.util.regex.Pattern $ 5.isSatisfiedBy(Pattern.java:5251)at at   java.util.regex.Pattern $ 5.isSatisfiedBy(Pattern.java:5251)at at   java.util.regex.Pattern $ CharProperty.match(Pattern.java:3776)at at   java.util.regex.Pattern $ GroupCurly.match0(Pattern.java:4435)at at   java.util.regex.Pattern $ GroupCurly.match(Pattern.java:4405)at at   java.util.regex.Pattern $ GroupHead.match(Pattern.java:4658)at at   java.util.regex.Pattern $ Loop.match(Pattern.java:4785)at   java.util.regex.Pattern $ GroupTail.match(Pattern.java:4717)at   java.util.regex.Pattern $ GroupTail.match(Pattern.java:4717)at   java.util.regex.Pattern $ BranchConn.match(Pattern.java:4568)at   java.util.regex.Pattern $ BmpCharProperty.match(Pattern.java:3798)at at   java.util.regex.Pattern $ Branch.match(Pattern.java:4604)at   java.util.regex.Pattern $ GroupHead.match(Pattern.java:4658)at at   java.util.regex.Pattern $ GroupCurly.match0(Pattern.java:4485)at at   java.util.regex.Pattern $ GroupCurly.match(Pattern.java:4405)at at   java.util.regex.Pattern $ GroupHead.match(Pattern.java:4658)at at   java.util.regex.Pattern中$ Loop.match(Pattern.java:4785)

它正在解析的文件有数百个连续的\ r \ n。除此之外,我看不到任何异常。 有人可以建议表达式的哪个方面和/或java内部正则表达式解析导致错误吗?

0 个答案:

没有答案