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

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

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

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

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

^$

Пустое значение

.+

Непустое (любое) значение

([A-Za-z0-9-]+)

Буквы, числа и знаки переноса

(\d{1,2}\/\d{1,2}\/\d{4})

Дата, например 21/3/2006

([^\s]+(?=\.(jpg|gif|png))\.\2

Имя файла jpg, gif или png

(^[1-9]{1}$|^[1-4]{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-теги

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

Якоря

^

Начало строки +

\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,}

3 или больше +

{3,5}

3, 4 или 5 +

{3,5}?

3, 4 или 5, нежадный +

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

\

Экранирующий символ +

\n

Новая строка +

\r

Возврат каретки +

\t

Табуляция +

\v

Вертикальная табуляция +

\f

Новая страница +

\a

Звуковой сигнал

[\b]

Возврат на один символ

\e

Escape-символ

\N{name}

Именованный символ

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

$n

n-ая непассивная группа

$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 +

\n

n-ая группа/подшаблон +

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

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

g

Глобальный поиск

i

Регистронезависимый шаблон

m

Многострочный текст

s

Считать текст одной строкой

x

Разрешить комментарии и пробелы в шаблоне

e

Выполнение подстановки

U

Нежадный шаблон

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

^

[

.

$

\{

*

(

\

+

|

?

<

>

)