Объект регулярного выражения Pattern
получается в результате компиляции шаблона регулярного выражения.
Скомпилированные объекты регулярных выражений поддерживают рассмотренные ниже методы и атрибуты:
Pattern
.Pattern.search()
,Pattern.match()
,Pattern.fullmatch()
,Pattern.split()
,Pattern.findall()
,Pattern.finditer()
,Pattern.sub()
,Pattern.subn()
,Pattern.flags
,Pattern.groups
,Pattern.groupindex
,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
- это строка шаблона регулярного выражения, из которой был скомпилирован объект шаблона.