Match-объект - информация о совпадениях с регулярным выражением в строке в Python
Match-объект представляет собой объект
с информацией о совпадениях с
регулярным выражением
в строке. Match-объект можно получить,
применив следующие методы:
fullmatch
,
match
,
search
.
Извлечь информацию из match-объекта можно с помощью основных методов.
Основные методы, применяемые к match-объекту
Метод | Назначение |
---|---|
group |
Возвращает нулевой карман. |
groups |
Возвращает кортеж из карманов. |
groupdict |
Возвращает словарь из именованных карманов. |
span |
Возвращает первый и последний индексы кортежа из одного кармана. |
start |
Возвращает первый индекс кортежа из одного кармана. |
end |
Возвращает последний индекс кортежа из одного кармана. |
Пример . Match-объект без метода
Давайте применим метод match
к нашей строке:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res)
Результат выполнения кода:
<re.Match object; span=(0, 3), match='123'>
Пример . Метод group
А теперь давайте выведем нулевой
карман из Match object методом
group
:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res.group())
Результат выполнения кода:
'123'
Пример . Метод groups
Давайте к полученному объекту
применим метод groups
для
вывода кортежей карманов:
txt = '123 456 789'
res = re.match('(\d)(\d)', txt)
print(res.groups())
Результат выполнения кода:
('1', '2')
Пример . Метод groupdict
Для вывода словаря именованных карманов
можно применить метод groupdict
:
res = re.match('(?P<test1>\d)(?P<test2>\d)', txt)
print(res.groupdict())
Результат выполнения кода:
{'test1': '1', 'test2': '2'}
Пример . Метод span
Давайте выведем кортеж из
первого и последнего индексов
одного кортежа. Для этого мы
используем метод span
:
res = re.match('\d+', txt)
print(res.span())
После выполнения кода вы увидите кортеж, состоящий из двух индексов. Но при этом заметьте, что последнее значение на единицу больше конечного индекса:
(0, 3)
Пример . Методы start и end
Чтобы вернуть каждый из индексов
по отдельному, можно применить
методы start
и
end
:
res = re.match('\d+', txt)
print(res.start())
print(res.end())
Результат выполнения кода:
0
3