Регулярные выражения

Регулярные выражения

Регулярные выражения ​

Регулярные выражения - это специальный язык, с помощью которого можно искать совпадения в тексте. Регулярные выражения позволяют использовать более сложные фильтры, нежели простое текстовое совпадение.

Регулярные выражения поддерживаются в

Образцы шаблонов ​

NOTE

Эти шаблоны предназначены для ознакомительных целей и основательно не проверялись. Используйте их с осторожностью и предварительно тестируйте.

^$Пустое значение
.+Непустое (любое) значение
([A-Za-z0-9-]+)Буквы, числа и знаки переноса
(\d/\d{1,2}/\d{4})Дата, например 21/3/2006
([^\s]+(?=.(jpg|gif|png)).\2Имя файла jpg, gif или png
([1]{1}$|[2]{1}[0-9]{1}$|^50$)Любое число от 1 до 50 включительно
(#?([A-Fa-f0-9]){3}(([A-Fa-f0-9]){3})?)Шестнадцатеричный код цвета
((?=.\d)(?=.[a-z])(?=.*[A-Z]).{8,15})От 8 до 15 символов с минимум одной цифрой, одной заглавной и одной строчной буквой (полезно для паролей)
(\w+@[a-zA-Z_]+?.[a-zA-Z]{2,6})Адрес email
(<(/?[^>]+)>)HTML-теги

NOTE

Отмеченное " + " работает в большинстве языков программирования.

Якоря ​

^Начало строки +
\AНачало текста +
$Конец строки +
\ZКонец текста +
\bГраница слова +
\BНе граница слова +
<Начало слова
>Конец слова

Символьные классы ​

\cУправляющий символ
\sПробел
\SНе пробел
\dЦифра
\DНе цифра
\wСлово
\WНе слово
\xhhШестнадцатеричный символ hh
\OxxxВосьмеричный символ ххх

Символьные классы POSIX ​

[:upper:]Буквы в верхнем регистре
[:lower:]Буквы в нижнем регистре
[:alpha:]Все буквы
[:alnum:]Буквы и цифры
[:digit:]Цифры
[:xdigit:]Шестнадцатеричные цифры
[:punct:]Пунктуация
[:blank:]Пробел и табуляция
[:space:]Пустые символы
[:cntrl:]Управляющие символы
[:graph:]Печатные символы
[:print:]Печатные символы и пробелы
[:word:]Буквы, цифры и подчёркивание

Утверждения ​

?=Вперёд смотрящее +
?!Отрицательное вперёд смотрящее +
?<=Назад смотрящее +
?!= или ?Отрицательное назад смотрящее +
?>Однократное подвыражение
?()Условие [если, то]
?()|Условие [если, то, а иначе]
?#Комментарий

Кванторы ​

*0 или больше +
*?0 или больше, нежадный +
+1 или больше +
+?1 или больше, нежадный +
?0 или 1 +
??0 или 1, нежадный +
Ровно 3 +
3 или больше +
3, 4 или 5 +
{3,5}?3, 4 или 5, нежадный +

Специальные символы ​

\Экранирующий символ +
\nНовая строка +
\rВозврат каретки +
\tТабуляция +
\vВертикальная табуляция +
\fНовая страница +
\aЗвуковой сигнал
[\b]Возврат на один символ
\eEscape-символ
\NИменованный символ

Подстановка строк ​

$nn-ая непассивная группа
$2"xyz" в /^(abc(xyz))$/
$1"xyz" в /^(?:abc)(xyz)$/
$`Перед найденной строкой
$'После найденной строки
$+Последняя найденная строка
$&Найденная строка целиком
$_Исходный текст целиком
$$Символ "$"

Диапазоны ​

.Любой символ, кроме переноса строки (\n) +
(a|b)a или b +
(…​)Группа +
(?:…​)Пассивная группа +
[abc]Диапазон (a или b или c) +
[^abc]Не a, не b и не c +
[a-q]Буква между a и q +
[A-Q]Буква в верхнем регистре между A и Q +
[0-7]Цифра между 0 и 7 +
\nn-ая группа/подшаблон +

NOTE

Диапазоны включают граничные значения.

Модификаторы шаблонов ​

gГлобальный поиск
iРегистронезависимый шаблон
mМногострочный текст
sСчитать текст одной строкой
xРазрешить комментарии и пробелы в шаблоне
eВыполнение подстановки
UНежадный шаблон

Мета-символы (экранируются) ​

^[.${*(
\+|?<>)

  1. 1-9 ↩︎

  2. 1-4 ↩︎