elasticsearch/docs/reference/scripting-languages/painless/painless-regexes.md
Colleen McGinnis b7e3a1e14b
[docs] Migrate docs from AsciiDoc to Markdown (#123507)
* delete asciidoc files

* add migrated files

* fix errors

* Disable docs tests

* Clarify release notes page titles

* Revert "Clarify release notes page titles"

This reverts commit 8be688648d.

* Comment out edternal URI images

* Clean up query languages landing pages, link to conceptual docs

* Add .md to url

* Fixes inference processor nesting.

---------

Co-authored-by: Liam Thompson <32779855+leemthompo@users.noreply.github.com>
Co-authored-by: Liam Thompson <leemthompo@gmail.com>
Co-authored-by: Martijn Laarman <Mpdreamz@gmail.com>
Co-authored-by: István Zoltán Szabó <szabosteve@gmail.com>
2025-02-27 17:56:14 +01:00

1.3 KiB
Raw Blame History

mapped_pages
https://www.elastic.co/guide/en/elasticsearch/painless/current/painless-regexes.html

Regexes [painless-regexes]

Regular expression constants are directly supported. To ensure fast performance, this is the only mechanism for creating patterns. Regular expressions are always constants and compiled efficiently a single time.

Pattern p = /[aeiou]/

::::{warning} A poorly written regular expression can significantly slow performance. If possible, avoid using regular expressions, particularly in frequently run scripts. ::::

Pattern flags [pattern-flags]

You can define flags on patterns in Painless by adding characters after the trailing / like /foo/i or /foo \w #comment/iUx. Painless exposes all of the flags from Javas Pattern class using these characters:

Character Java Constant Example
c CANON_EQ 'å' ==~ /å/c (open in hex editor to see)
i CASE_INSENSITIVE 'A' ==~ /a/i
l LITERAL '[a]' ==~ /[a]/l
m MULTILINE 'a\nb\nc' =~ /^b$/m
s DOTALL (aka single line) 'a\nb\nc' =~ /.b./s
U UNICODE_CHARACTER_CLASS 'Ɛ' ==~ /\\w/U
u UNICODE_CASE 'Ɛ' ==~ /ɛ/iu
x COMMENTS (aka extended) 'a' ==~ /a #comment/x