A finditer metódus a Python reguláris kifejezéseiben
A finditer metódus arra szolgál,
hogy iterátort kapjunk az összes reguláris kifejezéssel
megegyező eredményről a sztringben. A metódus első paraméterében
a keresendő reguláris kifejezést adjuk meg,
a második paraméterben pedig a keresendő sztringet.
A metódus balról jobbra haladva ellenőrzi az összes egyezést.
A metódus egyezési objektumok iterátorát adja vissza. A
finditer metódus szintaxisa a következő:
re.finditer(mit keresünk, hol keresünk)
Keressük meg az összes számjegyet tartalmazó részsztringet a sztringünkben:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
A kód végrehajtásának eredménye:
<callable_iterator object at 0x000002AA891300A0>
Most deklaráljunk egy res nevű változót,
aminek értéke az előző példában kapott objektum lesz.
Ezután iteráljunk át rajta egy ciklussal:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
A kód végrehajtása után két match-objektum jelenik meg:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ezek az objektumok tuple formájában tartalmaznak információt az összes egyezésről a reguláris kifejezéssel. Az index alapján is kiírhatjuk belőlük az egyezéseket:
for el in res:
print(el[0])
A kód végrehajtásának eredménye:
'123'
'456'
Adott egy sztring:
txt = '12 aaa 34 bbb 56 ccc'
Írja ki belőle az összes számot egy ciklus segítségével.