我在使用Nashorn Javascript引擎解析文本时遇到了一个奇怪的java.lang.ArrayIndexOutOfBoundsException: 64
错误。要在JJS中重现问题:
var col0 = " xxxx, xxx xxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ";
var name = /([^\s]+),(.*)+/.exec(col0);
测试字符串的其他一些变体也会导致相同的异常,例如。
var col0 = "x, xxxxxxxxxx xxxxxxxxx xxxxxxx, xxxx xxxxx xxxxx ";
发生JDK8版本25,31和40ea(在Windows 8上)。
答案 0 :(得分:3)
这是我们正则表达式实现中的一个错误。我已经为它提交了一个错误:
https://bugs.openjdk.java.net/browse/JDK-8073818
更新:您可以使用-Dnashorn.regexp.impl=jdk
选项作为解决方法。这使得Nashorn使用java.util.regex包而不是Joni,它没有显示这个bug。