Metoda finditer v regulárních výrazech Python
Metoda finditer je určena pro
získání iterátoru všech shod s
regulárním výrazem v řetězci. V prvním parametru
metody určíme regulární výraz, který budeme
hledat, ve druhém parametru - řetězec,
ve kterém hledáme. Metoda kontroluje všechny shody,
hledá je zleva doprava. Metoda vrací
iterátor objektů shody. Syntaxe
metody finditer vypadá takto:
re.finditer(co hledat, kde hledat)
Pojďme najít všechny podřetězce s číslicemi v našem řetězci:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Výsledek provedení kódu:
<callable_iterator object at 0x000002AA891300A0>
A nyní deklarujme proměnnou res,
jejíž hodnotou bude objekt, který jsme
obdrželi v předchozím příkladu. Poté jej projdeme
cyklem:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Po provedení kódu se vypíší dva match-objekty:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Tyto objekty obsahují informace o všech shodách s regulárním výrazem ve formě n-tice. Lze z nich vypsat shody podle indexu:
for el in res:
print(el[0])
Výsledek provedení kódu:
'123'
'456'
Daný řetězec:
txt = '12 aaa 34 bbb 56 ccc'
Vypište z něj všechna čísla pomocí cyklu.