Metoda finditer v regularnih izrazih Python
Metoda finditer je namenjena
pridobivanju iteratorja vseh ujemanj z
regularnim izrazom v nizu. V prvem parametru
metode podamo regularni izraz, ki ga bomo
iskani, v drugem parametru - niz,
v katerem iščemo. Metoda preveri vsa ujemanja,
poišče jih od leve proti desni. Metoda vrne
iterator objektov ujemanja. Sintaksa
metode finditer je naslednja:
re.finditer(kaj iskati, kje iskati)
Poiščimo vse podnize s številkami v našem nizu:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Rezultat izvajanja kode:
<callable_iterator object at 0x000002AA891300A0>
In sedaj deklarirajmo spremenljivko res,
katere vrednost bo objekt, ki smo ga
prejeli v prejšnjem primeru. Nato ga
ponovimo z zanko:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Po izvedbi kode se izpišeta dva match-objekta:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ti objekti vsebujejo informacije o vseh ujemanjih z regularnim izrazom v obliki terke. Iz njih lahko izpišemo ujemanja po indeksu:
for el in res:
print(el[0])
Rezultat izvajanja kode:
'123'
'456'
Dan niz:
txt = '12 aaa 34 bbb 56 ccc'
Iz njega izpišite vsa števila s pomočjo zanke.