正则表达式

编辑

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

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