Metóda finditer v regulárnych výrazoch Python

Metóda finditer je určená na získanie iterátora všetkých zhôd s regulárnym výrazom v reťazci. V prvom parametri metódy uvádzame regulárny výraz, ktorý budeme hladať, v druhom parametri - reťazec, v ktorom hľadáme. Metóda kontroluje všetky zhody, hladajúc ich zľava doprava. Metóda vráti iterátor objektov zhody. Syntax metódy finditer vyzerá takto:

pythonre.finditer(čo hľadať, kde hľadať)

Poďme nájsť všetky podreťazce s číslicami v našom reťazci:

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

Výsledok vykonania kódu:

python<callable_iterator object at 0x000002AA891300A0>

A teraz deklarujme premennú res, ktorej hodnotou bude objekt, ktorý sme získali v predchádzajúcom príklade. Potom ho preiterujeme cyklom:

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

for el in res:
  print(el)

Po vykonaní kódu sa vypíšu dva match-objekty:

python<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>

Tieto objekty obsahujú informácie o všetkých zhodách s regulárnym výrazom vo forme n-tice. Je možné z nich vypísať zhody podľa indexu:

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

Výsledok vykonania kódu:

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

Daný reťazec:

pythontxt = '12 aaa 34 bbb 56 ccc'

Vypíšte z neho všetky čísla pomocou cyklu.