Алгоритм, который сопоставляет строки с регулярным выражением, проверяет соответствие того или иного фрагмента строки регулярному выражению. Например, строка «a
» соответствует регулярному выражению «[a–z]
», строка «fruit
» соответствует «fruit|vegetable
», а вот строка «apple
» не соответствует шаблону «pineapple
».
В таблице ниже вместо регвыр
может быть записано регулярное выражение, вместо имя
— идентификатор, а флаги будут рассмотрены ниже.
Обозначение | Описание |
---|---|
"(регвыр)" | Обособляет регулярное выражение в скобках и выделяет группу |
"(?:регвыр)" | Обособляет регулярное выражение в скобках без выделения группы |
"(?=регвыр)" | Взгляд вперед: строка должна соответствовать заданному регулярному выражению, но дальнейшее сопоставление с шаблоном начнется с того же места |
"(?!регвыр)" | То же, но с отрицанием соответствия |
"(?<=регвыр)" | Взгляд назад: строка должна соответствовать, если до этого момента соответствует регулярному выражению. Не занимает места в строке, к которой применяется шаблон. Параметр регвыр должен быть фиксированной длины (то есть, без «+ » и "* ") |
"(? | То же, но с отрицанием соответствия |
"(?P<имя>регвыр)" | Выделяет именованную группу с именем имя |
"(?P=имя)" | Точно соответствует выделенной ранее именованной группе с именем имя |
"(?#регвыр)" | Комментарий (игнорируется) |
"(?(имя)рв1|рв2)" | Если группа с номером или именем имя оказалась определена, результатом будет сопоставление с рв1 , иначе — c рв2 . Часть |рв2 может отсутствовать |
"(?флаг)" | Задает флаг для всего данного регулярного выражения. Флаги необходимо задавать в начале шаблона |
В таблице ниже описаны специальные последовательности, использующие обратную косую черту:
Последовательность | Чему соответствует |
---|---|
"\1" –"\9" | Группа с указанным номером. Группы нумеруются, начиная с 1 |
"\A" | Промежуток перед началом всей строки (почти аналогично "^" ) |
"\Z" | Промежуток перед концом всей строки (почти аналогично "$" ) |
"\b" | Промежуток между символами перед словом или после него |
"\B" | Наоборот, не соответствует промежутку между символами на границе слова |
"\d" | Цифра. Аналогично «[0–9] » |
"\s" | Любой пробельный символ. Аналогично «[\t\n\r\f\v] » |
"\S" | Любой непробельный символ. Аналогично «[^\t\n\r\f\v] » |
"\w" | Любая цифра или буква (зависит от флага LOCALE ) |
"\W" | Любой символ, не являющийся цифрой или буквой (зависит от флага LOCALE ) |
Флаги, используемые с регулярными выражениями:
"(?i)", re.I, re.IGNORECASE
Сопоставление проводится без учета регистра букв.
"(?L)", re.L, re.LOCALE
Влияет на определение буквы в "\w"
, "\W"
, "\b"
, "\B"
в зависимости от текущей культурной среды (locale).
"(?m)", re.M, re.MULTILINE
Если этот флаг задан, "^"
и "$"
соответствуют началу и концу любой строки.
"(?s)", re.S, re.DOTALL
Если задан, "."
соответствует также и символу конца строки "\n"
.
"(?x)", re.X, re.VERBOSE
Если задан, пробельные символы, не экранированные в шаблоне обратной косой чертой, являются незначащими, а все, что расположено после символа "#"
, — комментарии. Позволяет записывать регулярное выражение в несколько строк для улучшения его читаемости и записи комментариев.
"(?u)", re.U, re.UNICODE
В шаблоне и в строке использован Unicode.
Методы объекта–шаблона