Синтаксис регулярных выражений

Для создания регулярного выражения необходимо использовать определенный синтаксис: специальные символы и конструкцию. Например, ниже показано простое регулярное выражение, которое соответствует любому 10-значному номеру телефона в формате nnn-nnn-nnnn:

\d{3}-\d{3}-\d{4}

В таблице ниже приведены некоторые специальные символы, наиболее часто используемые в регулярных выражениях. Такие символы можно разделить на три категории:

Символы Описание
Указатели
^ Знак вставки: соответствует началу текстовой строки, поиск которой выполняется с использованием регулярного выражения. Например, правило, в котором контент должен быть расположен в строке темы, и регулярное выражение

^абв

позволяют найти все сообщения электронной почты, строка темы которых начинается с букв абв.
$ Знак доллара: соответствует окончанию текстовой строки, поиск которой выполняется с использованием регулярного выражения. Например, правило, в котором контент должен быть расположен в строке темы, и регулярное выражение

эюя$

позволяют найти все сообщения электронной почты, строка темы которых заканчивается буквами эюя.
Метасимволы
. Точка: соответствует любому отдельному символу, кроме новой строки.
| Вертикальная черта: указывает на чередование и соответствует оператору “или”. Пример:

выражение "кот|собака" соответствует слову кот или собака.
\ Указывает на то, что следующий символ является литералом, а не специальным символом. Пример:

\. соответствует точке в качестве литерала, а не символа.
Классы символов
[...] Соответствует любому символу из набора символов. Первый и последний символ в наборе разделяются дефисом. Пример:

[123] соответствует цифре 1, 2 или 3.

[а-д] соответствует любой букве от a до д.

Примечание. Для регулярных выражений в правилах соответствия содержания учитывается регистр.
[^...] Соответствует любому символу, не входящему в набор символов. Пример:

[^a-д] соответствует любому символу, который не является буквой от a до д.

Примечание. Для регулярных выражений в правилах соответствия содержания учитывается регистр.
[:alnum:] Соответствует буквенно-цифровым символам (буквы или цифры):

a–я, A–Я или 0–9.

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:alnum:]].
[:alpha:] Соответствует буквенным символам (буквам):

a–я или A–Я.

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:alpha:]].
[:digit:] Соответствует цифрам:

0-9.

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:digit:]].
[:graph:] Соответствует только отображаемым символам (пробелы, служебные знаки и т. д. не учитываются).

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:graph:]].
[:punct:] Соответствует знакам пунктуации:

! " # $ % & ' ( ) * + , \ -. / : ; < = > ? @ [ ] ^ _ ` { | }

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:punct:]].
[:print:] Соответствует отображаемым символам и пробелам.

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например: [[:print:]].
[:space:] Соответствует всем знакам пробела, включая собственно пробелы, табуляцию и разрывы строк.

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:space:]].
[:word:] Соответствует всем словообразующим символам – буквам, цифрам и знаку подчеркивания:

а–я, А–Я, 0–9 или _

Примечание. При использовании в регулярном выражении этот класс символов необходимо заключить в дополнительные квадратные скобки, например [[:word:]].
Класс условных символов
\w Соответствует всем словообразующим символам – буквам, цифрам и знаку подчеркивания:

а–я, А–Я, 0–9 или _

Эквивалент [:word:].
\W Соответствует всем несловообразующим символам (всем символам, кроме букв, цифр и знака подчеркивания).

Эквивалент [^[:word:]].
\s Соответствует символам пробелов. Например, этот знак используется для обозначения пробела между словами во фразе:

выражение "сборник\sзаконов" соответствует фразе сборник законов

Эквивалент [:space:].
\S Соответствует любому символу, кроме пробела.

Эквивалент [^[:space:]].
\d Соответствует любой цифре от 0 до 9.

Эквивалент [:digit:].
\D Соответствует всем символам, кроме цифр от 0 до 9.

Эквивалент [^[:digit:]].
Группа
(...) Объединяет элементы выражения. Группировка используется для применения к набору символов квантификатора или для поиска класса символов перед группой либо после нее.
Квантификаторы
{n} Поиск n вхождений предыдущего выражения. Пример:

[а-в]{2} соответствует любой букве от a до в, только если в строке встречаются две буквы. Таким образом, это выражение соответствует символам аб и бв, но не абв или ааббв.
{n,m} Поиск не менее n и не более m вхождений предыдущего выражения. Пример:

[a-в]{2,4} соответствует любой букве от a до в, только если такие буквы встречаются в строке от 2 до 4 раз. Таким образом, это выражение соответствует символам аб и абв, но не ааббв.
? Указывает на то, что предыдущий символ или выражение могут входить в строку 0 или 1 раз. Эквивалент диапазона {0,1}. Например, регулярное выражение

пиксел?

соответствует словам пиксел и пиксель, так как знак ? указывает на то, что буква ь является необязательной.
 

Эта информация оказалась полезной?

Как можно улучшить эту статью?
Поиск
Очистить поле поиска
Закрыть поиск
Приложения Google
Главное меню