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