Для создания регулярного выражения необходимо использовать определенный синтаксис: специальные символы и конструкцию. Например, ниже показано простое регулярное выражение, которое соответствует любому 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}. Например, регулярное выражение пиксел? соответствует словам пиксел и пиксель, так как знак ? указывает на то, что буква ь является необязательной. |