Metoda finditer din modulul re
Metoda finditer din modulul re
returnează un iterator pentru toate potrivirile cu expresia regulată
într-un șir. În primul parametru al metodei specificăm
expresia regulată. În al doilea parametru stabilim
șirul în care căutăm expresia. În al treilea
parametru opțional putem seta steagurile.
Metoda verifică toate potrivirile, căutându-le
de la stânga la dreapta.
Sintaxă
import re
re.finditer(expresie_regulată, șir, [steaguri])
Exemplu
Să găsim toate subșirurile cu cifre în șirul nostru:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Rezultatul executării codului:
<callable_iterator object at 0x000002AA891300A0>
Exemplu
Și acum să declarăm variabila res,
a cărei valoare va fi obiectul obținut
de noi în exemplul anterior. Apoi să îl iterăm
cu un ciclu:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
După executarea codului vom obține două obiecte Match object:
<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. Putem extrage din ele potrivirile după index:
for el in res:
print(el[0])
Rezultatul executării codului:
'123'
'456'
Exemplu
Pentru o mai bună claritate, să folosim grupuri (capturi) la căutarea potrivirilor. Și la iterarea obiectelor cu ciclul să afișăm prima potrivire (ea va fi considerată grupul zero), precum și elementele sale, la rândul lor distribuite în grupuri:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
După executarea codului vom obține grupul zero, adică întregul subșir, precum și primul și al doilea caracter din acest subșir:
'12' '1' '2'
'45' '4' '5'
Vedeți și
-
metoda
findalldin modululre,
care returnează o listă cu toate potrivirile din șir -
metoda
searchdin modululre,
care caută prima potrivire cu expresia regulată în șir -
metoda
matchdin modululre,
care caută potrivirea cu expresia regulată la începutul șirului -
metoda
fullmatchdin modululre,
care caută toate potrivirile cu expresia regulată în șir -
obiectul
Match objectdin modululre,
care conține informații despre potrivirile cu expresia regulată -
metoda
splitdin modululre,
care împarte șirul într-o listă după separatorul specificat