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:
re.finditer(čo hľadať, kde hľadať)
Poďme nájsť všetky podreťazce s číslicami v našom reťazci:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Výsledok vykonania kódu:
<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:
txt = '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:
<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:
for el in res:
print(el[0])
Výsledok vykonania kódu:
'123'
'456'
Daný reťazec:
txt = '12 aaa 34 bbb 56 ccc'
Vypíšte z neho všetky čísla pomocou cyklu.