Nashorn的RegExp实现不支持Unicode类别吗?



我尝试使用/p{L}/ig匹配字符串中的所有类似字母的字符。但是,Nashorn的RegExp实现似乎不支持此Unicode类别。

是否有解决方法或修复程序?


更新:IMO 这不是所引用问题的重复:Nashorn 8 确实实现了 ECMAScript 5.1,但由于引擎在 Java 上运行,因此可能存在一种"Java 方式"来更改引擎使用的 RegExp 实现。


更新:我安装了Nashorn full version 9-internal+0-2016-04-14-195246附带的Java 9(OpenJDK(。即使使用 ECMAScript 6 运行 Nashorn (--language=es6(,也不支持 Unicode 类别。

据我所知,当前的 ECMAScript RegExp 规范不支持 Unicode 类别(最高为 6.0(;

例如
  • https://www.ecma-international.org/ecma-262/6.0/#sec-regexp-regular-expression-objects

Nashorn 只是简单地实现了 ECMAScript 规范。 否则将是一个错误!

如果您确实需要对 Unicode 类别和其他增强功能的支持,请考虑更改 Javascript 代码以使用 XRegExp 库。 或者,从Javascript代码调用本机Java Pattern/Matcher类。 这两种方法都需要更改代码....

最新更新