我注意到在不包含任何新行的1400个字符长的字符串上运行(^.*\n?)
正则表达式在StackOverflowError上失败,我想知道是什么原因以及是否有人可以指出字符串长度限制。
谢谢
最佳答案
奇怪的是,下面的Java代码在使用10 ^ 5个字符时不会出现问题。
正则表达式对我来说似乎并不奇怪。盖伊,您能为我们提供更多背景信息吗?
package stackOverflowJava;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class interactiveProg1 {
public static void main(String[] args) {
Pattern p = Pattern.compile("(^.*\n?)");
StringBuffer subject = new StringBuffer();
for (int i = 0; i < 99999; i++) {
subject.append("a");
}
System.out.println("Subject : " + subject);
Matcher m = p.matcher(subject.toString());
boolean b = m.matches();
System.out.println("Pattern matches: " + b);
}
}
Subject : aaaaaaaaaaaa...
Pattern matches: true
关于java - Apache REgex失败,并显示stackOverflowError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39963045/