Используя класс Pattern, вы можете указать флаги опций в качестве второго параметра метода compile
, на что указал Алвин:
Pattern.compile("[a-z]+", Pattern.CASE_INSENSITIVE).matcher("Hello").matches() // true
Однако это не поможет нам, если регулярное выражение должно быть строкой. Например, когда это в конфигурационном файле. К счастью, есть и другой способ
Также возможно включить различные флаги, используя выражения встроенных флагов. Встроенные выражения флагов являются альтернативой версии компиляции с двумя аргументами и указываются в самом регулярном выражении.
Enter your regex: (?i)foo
Enter input string to search: FOOfooFoOfoO
I found the text "FOO" starting at index 0 and ending at index 3.
I found the text "foo" starting at index 3 and ending at index 6.
I found the text "FoO" starting at index 6 and ending at index 9.
I found the text "foO" starting at index 9 and ending at index 12.
Встроенные выражения флагов, которые соответствуют общедоступным полям Pattern, представлены в следующей таблице:
Constant Equivalent Embedded Flag Expression
Pattern.CANON_EQ None
Pattern.CASE_INSENSITIVE (?i)
Pattern.COMMENTS (?x)
Pattern.MULTILINE (?m)
Pattern.DOTALL (?s)
Pattern.LITERAL None
Pattern.UNICODE_CASE (?u)
Pattern.UNIX_LINES (?d)