Metoda finditer în expresiile regulate Python
Metoda finditer este destinată
obținerii unui iterator pentru toate potrivirile cu
expresia regulată în șir. În primul parametru al
metodei specificăm expresia regulată pe care o vom
căuta, în al doilea parametru - șirul
în care căutăm. Metoda verifică toate potrivirile,
căutându-le de la stânga la dreapta. Metoda returnează
un iterator de obiecte de potrivire. Sintaxa
metodei finditer arată astfel:
re.finditer(ce să cauți, unde să cauți)
Să găsim toate subșirurile cu cifre în șirul nostru:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Rezultatul executării codului:
<callable_iterator object at 0x000002AA891300A0>
Și acum să declarăm o variabilă res,
al cărei valoare va fi obiectul obținut
de noi în exemplul anterior. Apoi să îl parcurgem
cu un ciclu:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
După executarea codului vor fi afișate două obiecte match:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Aceste obiecte conțin informații despre toate potrivirile cu expresia regulată sub formă de tuplu. Se pot afișa din ele potrivirile după index:
for el in res:
print(el[0])
Rezultatul executării codului:
'123'
'456'
Este dat șirul:
txt = '12 aaa 34 bbb 56 ccc'
Afișați din el toate numerele cu ajutorul ciclului.