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ő:

pythonre.finditer(mit keresünk, hol keresünk)

Keressük meg az összes számjegyet tartalmazó részsztringet a sztringünkben:

pythontxt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))

A kód végrehajtásának eredménye:

python<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:

pythontxt = '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:

python<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:

pythonfor el in res:
  print(el[0])

A kód végrehajtásának eredménye:

python'123'
'456'
Задание 1

Adott egy sztring:

pythontxt = '12 aaa 34 bbb 56 ccc'

Írja ki belőle az összes számot egy ciklus segítségével.