Сообщить об ошибке.

Объект регулярного выражения Pattern модуля re в Python

Объект регулярного выражения Pattern получается в результате компиляции шаблона регулярного выражения.

Скомпилированные объекты регулярных выражений поддерживают рассмотренные ниже методы и атрибуты:

Методы объекта регулярного выражения Pattern.


Pattern.search(string[, pos[, endpos]]):

Метод Pattern.search() сканирует строку и находит первое место, где это регулярное выражение производит совпадение. Результатом раборы метода будет соответствующий объект сопоставления или None если ни одна позиция в строке не соответствует шаблону. Обратите внимание, что это отличается от поиска совпадения нулевой длины в некоторой точке строки.

Необязательный второй параметр pos обозначает индекс в строке, с которой начинается поиск, по умолчанию 0. Это не совсем эквивалентно срезу строки. Специальный символ синтаксиса регулярного выражения '^' совпадает в реальным началом строки и в позициях сразу после новой строки, но не обязательно в индексе, с которого должен начинаться поиск.

Необязательный параметр endpos ограничивает расстояние поиска строки. Поиск совпадений будет ограничен символами от pos до endpos - 1 переданной строки string. Если endpos меньше, чем pos, совпадение найдено не будет, в противном случае, если rx является скомпилированным объектом регулярного выражения, rx.search(string, 0, 50) эквивалентен rx.search(string[:50], 0).

>>> import re
>>> pattern = re.compile("d")

# совпадение по индексу 0
>>> pattern.search("dog")
# <re.Match object; span=(0, 1), match='d'>

# Нет совпадений, поиск не включает
# позицию символа 'd'
>>> pattern.search("dog", 1)

Pattern.match(string[, pos[, endpos]]):

Метод Pattern.match() возвращает соответствующий объект сопоставления если ноль или более символов в начале строки string соответствуют скомпилированному регулярному выражению Pattern. Метод Pattern.match() вернет None если строка не соответствует шаблону. Обратите внимание, что это отличается от совпадения нулевой длины.

Необязательные параметры pos и endpos имеют то же значение, что и для метода Pattern.search().

>>> import re
>>> pattern = re.compile('o')

# Совпадений нет т.к. 'o' не первый символ
>>> pattern.match("dog")

# Совпадение найдено
>>> pattern.match("dog", 1)
# <re.Match object; span=(1, 2), match='o'>

Если необходимо найти совпадение в любом месте строки, используйте метода Pattern.search().

Pattern.fullmatch(string[, pos[, endpos]]):

Метод Pattern.fullmatch() возвращает соответствующий объект сопоставления если вся строка соответствует скомпилированному регулярному выражению Pattern. Метод Pattern.fullmatch() вернет None если строка не соответствует шаблону. Обратите внимание, что это отличается от совпадения нулевой длины.

Необязательные параметры pos и endpos имеют то же значение, что и для метода Pattern.search().

>>> import re
>>> pattern = re.compile("o[gh]")

# Совпадений нет т.к. 'o' не первый символ
>>> pattern.fullmatch("dog")

# Совпадений нет т.к. совпала не вся строка
>>> pattern.fullmatch("ogre")

# Совпадение найдено, т.к. поиск ограничен
>>> pattern.fullmatch("doggie", 1, 3)
# <re.Match object; span=(1, 3), match='og'>

Pattern.split(string, maxsplit=0):

Метод Pattern.split() идентичен функции re.split(), использующей скомпилированный шаблон регулярного выражения.

Pattern.findall(string[, pos[, endpos]]):

Метод Pattern.findall() аналогичен функции re.findall(), использующей скомпилированный шаблон регулярного выражения, но также принимает необязательные параметры pos и endpos, которые ограничивают область поиска.

Необязательные параметры pos и endpos имеют то же значение, что и для метода Pattern.search().

Pattern.finditer(string[, pos[, endpos]]):

Метод Pattern.finditer() аналогичен функции re.finditer(), использующей скомпилированный шаблон регулярного выражения, но также принимает необязательные параметры pos и endpos, которые ограничивают область поиска.

Необязательные параметры pos и endpos имеют то же значение, что и для метода Pattern.search().

Pattern.sub(repl, string, count=0):

Метод Pattern.sub() идентичен функции re.sub(), использующей скомпилированный шаблон регулярного выражения.

Pattern.subn(repl, string, count=0):

Метод Pattern.subn() идентичен функции re.subn(), использующей скомпилированный шаблон регулярного выражения.

Атрибуты объекта регулярного выражения Pattern

Pattern.flags:

Атрибут Pattern.flags - это флаги соответствия регулярному выражению. Комбинация присвоенных флагов re.compile(), любых встроенных флагов (?...) в шаблоне и неявных флагов (флаги по умолчанию), например UNICODE если шаблон является строкой Unicode.

Pattern.groups:

Атрибут Pattern.groups - это число групп захвата в шаблоне.

Pattern.groupindex:

Атрибут Pattern.groupindex - это словарь, сопоставляющий любые символические имена групп, определенные конструкцией (?P<id>) номерами групп. Словарь является пустым, если в шаблоне не использовались символические группы.

Pattern.pattern:

Атрибут Pattern.groupindex - это строка шаблона регулярного выражения, из которой был скомпилирован объект шаблона.