正则表达式

编辑

直接支持正则表达式常量。为了确保快速性能,这是创建模式的唯一机制。正则表达式始终是常量,并且会高效地编译一次。

Pattern p = /[aeiou]/

编写不当的正则表达式会严重降低性能。如果可能,避免使用正则表达式,尤其是在频繁运行的脚本中。

模式标志

编辑

您可以在 Painless 中通过在尾随的 / 后添加字符来定义模式标志,例如 /foo/i/foo \w #comment/iUx。Painless 使用这些字符公开了 Java 的 Pattern 类 中的所有标志。

字符 Java 常量 示例

c

CANON_EQ

'å' ==~ /å/c(用十六进制编辑器打开查看)

i

CASE_INSENSITIVE

'A' ==~ /a/i

l

LITERAL

'[a]' ==~ /[a]/l

m

MULTILINE

'a\nb\nc' =~ /^b$/m

s

DOTALL(又名单行)

'a\nb\nc' =~ /.b./s

U

UNICODE_CHARACTER_CLASS

'Ɛ' ==~ /\\w/U

u

UNICODE_CASE

'Ɛ' ==~ /ɛ/iu

x

COMMENTS(又名扩展)

'a' ==~ /a #comment/x