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'
Daný reťazec:
pythontxt = '12 aaa 34 bbb 56 ccc'
Vypíšte z neho všetky čísla pomocou cyklu.