我注意到在 StackOverflowError 的1400字符长的字符串上运行(^.*\n?)
正则表达式失败了,我想知道是什么原因以及是否有人可以指出字符串长度限制。
由于
答案 0 :(得分:0)
奇怪的是,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