Metoda finditer u regularnim izrazima Pajtona
Metoda finditer je namenjena za
dobijanje iteratora svih poklapanja sa
regularnim izrazom u stringu. U prvom parametru
metode određujemo regularni izraz koji ćemo
da tražimo, u drugom parametru - string,
u kome tražimo. Metoda proverava sva poklapanja,
tražeći ih sleva nadesno. Metoda vraća
iterator objekata poklapanja. Sintaksa
metode finditer izgleda ovako:
re.finditer(šta tražiti, gde tražiti)
Hajde da pronađemo sve podstringove sa ciframa u našem stringu:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Rezultat izvršavanja koda:
<callable_iterator object at 0x000002AA891300A0>
A sada hajde da deklarišemo promenljivu res,
čija vrednost će biti objekat, dobijen
nam u prethodnom primeru. Zatim ga prođimo
petljom:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Nakon izvršavanja koda ispisaće se dva match-objekta:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ovi objekti sadrže informacije o svim poklapanjima sa regularnim izrazom u vidu torke. Možemo iz njih da ispišemo poklapanja preko indeksa:
for el in res:
print(el[0])
Rezultat izvršavanja koda:
'123'
'456'
Dat je string:
txt = '12 aaa 34 bbb 56 ccc'
Ispišite iz njega sve brojeve pomoću petlje.