Регулярные выражения
Регулярные выражения (RegEx) — это шаблоны для поиска и манипулирования текстом. С помощью этих шаблонов вы можете находить, заменять или выделять текст, соответствующий определённым правилам.
Если вы уже знакомы с регулярными выражениями, рекомендуем перейти к главе ограничения регулярных выражений.
Синтаксис регулярных выражений
Рекомендуем сайт regex101.com для тестирования регулярных выражений.
.
: Соответствует любому символу, кроме новой строки.*
: Соответствует нулю или более повторениям предыдущего символа или группы.+
: Соответствует одному или более повторениям предыдущего символа или группы.?
: Соответствует нулю или одному повторению предыдущего символа или группы.^
: Соответствует началу строки.$
: Соответствует концу строки.[]
: Соответствует любому символу из указанных в скобках. Например,[abc]
соответствует любому из символов 'a', 'b' или 'c'.[^]
: Соответствует любому символу, не указанному в скобках. Например,[^abc]
соответствует любому символу, кроме 'a', 'b' и 'c'.{n}
: Соответствует ровно n повторениям предыдущего символа или группы.{n,}
: Соответствует n или более повторениям предыдущего символа или группы.{n,m}
: Соответствует от n до m повторениям предыдущего символа или группы.()
: Группирует часть регулярного выражения, позволяя применять к ней квантификаторы и использовать ее в качестве единого целого.|
: Оператор "или". Соответствует либо выражению слева от|
, либо выражению справа от|
.\
: Экранирует специальные символы, позволяя искать их как обычные символы. Например,\\
соответствует символу обратного слэша.
Примеры
Цифры
Находит все отдельные цифры в тексте.
Буквы
Находит любую букву от 'a' до 'z' или от 'A' до 'Z'.
Email-адреса
^[\w\.-]+ — начало строки, один или больше символов (букв, цифр, точек или дефисов).
@ — символ "собака".
[a-zA-Z\d\.-]+ — один или больше символов (букв, цифр, точек или дефисов).
\. — экранированная точка.
[a-zA-Z]{2,}$ — две или более буквы латинского алфавита до конца строки.
Поиск слова
Найдёт слово "слово", которое стоит отдельно (ограничено пробелами или началом/концом строки).
Поиск номеров телефонов
Найдёт номера телефонов в формате (XXX) XXX-XXXX.
Ограничения регулярных выражений
Имперский стражник накладывает несколько ограничений на регулярные выражения:
Обратные ссылки
Имперский стражник не поддерживает обратные ссылки, которые являются номерными ссылками на ранее совпавшие группы, например: \1, \2 и так далее.
Опережающие утверждения
Имперский стражник не поддерживает опережающие утверждения, которые позволяют проверять, что за ними следует определенный текст, например: (?=...), (?!...), (?<=...), (?<!...).