Match-обект
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 обекта с метода 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