Obiectul Match
Obiectul Match reprezintă un obiect cu
informații despre potrivirile cu expresia regulată
într-un șir. Obiectul Match poate fi obținut,
aplicând următoarele metode: fullmatch,
match,
search.
Extragerea informațiilor din obiectul match se poate face cu ajutorul metodelor principale.
Metode principale aplicate obiectului match
| Metodă | Scop |
|---|---|
group |
Returnează grupul zero. |
groups |
Returnează un tuplu cu grupurile. |
groupdict |
Returnează un dicționar cu grupurile denumite. |
span |
Returnează primul și ultimul index al tuplului pentru un grup. |
start |
Returnează primul index al tuplului pentru un grup. |
end |
Returnează ultimul index al tuplului pentru un grup. |
Exemplu . Obiectul Match fără metodă
Să aplicăm metoda match șirului nostru:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res)
Rezultatul executării codului:
<re.Match object; span=(0, 3), match='123'>
Exemplu . Metoda group
Acum să afișăm grupul zero
din obiectul Match folosind metoda group:
txt = '123 456 789'
res = re.match('\d+', txt)
print(res.group())
Rezultatul executării codului:
'123'
Exemplu . Metoda groups
Să aplicăm obiectului obținut
metoda groups pentru a afișa tuplurile
grupurilor:
txt = '123 456 789'
res = re.match('(\d)(\d)', txt)
print(res.groups())
Rezultatul executării codului:
('1', '2')
Exemplu . Metoda groupdict
Pentru a afișa dicționarul grupurilor denumite
se poate aplica metoda groupdict:
res = re.match('(?P<test1>\d)(?P<test2>\d)', txt)
print(res.groupdict())
Rezultatul executării codului:
{'test1': '1', 'test2': '2'}
Exemplu . Metoda span
Să afișăm tuplul cu primul și
ultimul index ai unui tuplu. Pentru
asta vom folosi metoda span:
res = re.match('\d+', txt)
print(res.span())
După executarea codului veți vedea un tuplu, format din doi indecși. Dar rețineți că ultima valoare este cu unu mai mare decât indexul final:
(0, 3)
Exemplu . Metodele start și end
Pentru a returna fiecare dintre indecși
separat, se pot aplica metodele start
și end:
res = re.match('\d+', txt)
print(res.start())
print(res.end())
Rezultatul executării codului:
0
3