StackOverflow尝试将大型String与正则表达式匹配时出错

时间:2012-11-18 02:28:41

标签: java regex string stack-overflow

我有一个包含自然数的字符串,在它们之间有任何模式,如(, - )或(,)。 有一段时间 - 我确保给定的字符串包含与给定窗口大小相同的数字,例如5。

条件如下:

while(discretizedTs.substring(lagWindowStart).matches("(-?,?\\d+,){5,}")) {
}

其中lagWindowStart跳转到下一个数字或( - ,)模式的索引。 对于小字符串,这个正则表达式工作正常(据测试)。 我的问题是,对于大型字符串(我必须正常处理非常大的字符串)这个正则表达式导致了SOF。 例如,如果String包含超过17k个字符,则会发生这种情况。

是否存在要匹配的String长度的限制?或必须完成匹配的时间限制? 没有正则表达式,我不知道如何解决给定的问题。 我希望你有任何想法..

谢谢 最好

1 个答案:

答案 0 :(得分:1)

默认JVM堆栈大小相当小。您可以使用-Xss选项增加它,例如-Xss1024k,应该有帮助。