Символ «минус» (-) меред модификатором (за исключением U) создаёт его отрицание.
Описание
g
глобальный поиск (обрабатываются все совпадения с шаблоном поиска)
i
игнорировать регистр
m
многострочный поиск. Поясню: по умолчанию текст это одна строка, с модификатором есть отдельные строки, а значит ^— начало строки в тексте, $— конец строки в тексте.
s
текст воспринимается как одна строка, спец символ «точка» (.) будет вкючать и перевод строки
u
используется кодировка UTF-8
U
инвертировать жадность
x
игнорировать все неэкранированные пробельные и перечисленные в классе символы
Спецсимволы
Аналог
Описание
()
подмаска, вложенное выражение
[]
групповой символ
{a,b}
количество вхождений от «a» до «b»
|
логическое «или», в случае с односимвольными альтернативами используйте []
\
экранирование спец символа
.
любой сивол, кроме перевода строки
\d
[0-9]
десятичная цифра
\D
[^\d]
любой символ, кроме десятичной цифры
\f
конец (разрыв) страницы
\n
перевод строки
\pL
буква в кодировке UTF-8 при использовании модификатора u
\r
возврат каретки
\s
[ \t\v\r\n\f]
пробельный символ
\S
[^\s]
любой символ, кроме промельного
\t
табуляция
\w
[0-9a-z_]
любая цифра, буква или знак подчеркивания
\W
[^\w]
любой символ, кроме цифры, буквы или знака подчеркивания
\v
вертикальная табуляция
Спецсимволы внутри символьного класса
Пример
Описание
^
[^da]
отрицание, любой символ кроме «d» или «a»
—
[a-z]
интервал, любой симво от «a» до «z»
Позиция внутри строки
Пример
Соответствие
Описание
^
^a
aaa aaa
начало строки
$
a$
aaa aaa
конец строки
\A
\Aa
aaa aaa
aaa aaa
начало текста
\z
a\z
aaa aaa
aaa aaa
конец текста
\b
a\b
\ba
aaa aaa aaa aaa
граница слова, утверждение: предыдущий символ словесный, а следующий — нет, либо наоборот
\B
\Ba\B
aaa aaa
отсутствие границы слова
\G
\Ga
aaa aaa
Предыдущий успешный поиск, поиск остановился на 4-й позиции — там, где не нашлось a
Таблица соответствия написания регулярок в разных системах.#posix
POSIX
Description
ASCII
Unicode
Shorthand
Java
[:alnum:]
Alphanumeric characters
[a—zA—Z0—9]
[\p{L}\p{Nl} \p{Nd}]
\p{Alnum}
[:alpha:]
Alphabetic characters
[a—zA—Z]
\p{L}\p{Nl}
\p{Alpha}
[:ascii:]
ASCII characters
[\x00—\x7F]
\p{InBasicLatin}
\p{ASCII}
[:blank:]
Space and tab
[\t]
[\p{Zs}\t]
\h
\p{Blank}
[:cntrl:]
Control characters
[\x00—\x1F\x7F]
\p{Cc}
\p{Cntrl}
[:digit:]
Digits
[0—9]
\p{Nd}
\d
\p{Digit}
[:graph:]
Visible characters (anything except spaces and control characters)
[\x21—\x7E]
[^\p{Z}\p{C}]
\p{Graph}
[:lower:]
Lowercase letters
[a—z]
\p{Ll}
\l
\p{Lower}
[:print:]
Visible characters and spaces (anything except control characters)
[\x20—\x7E]
\P{C}
\p{Print}
[:punct:]
Punctuation (and symbols).
[!»\#$%&'()*+, \-./:;<=>?@\[ \\\]^_‘{|}~]
\p{P}
\p{Punct}
[:space:]
All whitespace characters, including line breaks
[\t\r\n\v\f]
[\p{Z}\t\r\n\v\f]
\s
\p{Space}
[:upper:]
Uppercase letters
[A—Z]
\p{Lu}
\u
\p{Upper}
[:word:]
Word characters (letters, numbers and underscores)