Metoda finditer modulu re
Metoda finditer modulu re
vrací iterátor všech shod s regulárním výrazem
v řetězci. V prvním parametru metody určujeme
regulární výraz. Ve druhém parametru nastavujeme
řetězec, ve kterém hledáme regulární výraz. Ve třetím
volitelném parametru lze nastavit příznaky.
Metoda kontroluje všechny shody, hledá je
zleva doprava.
Syntaxe
import re
re.finditer(regulární_výraz, řetězec, [příznaky])
Příklad
Pojďme najít všechny podřetězce s číslicemi v našem řetězci:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Výsledek provedení kódu:
<callable_iterator object at 0x000002AA891300A0>
Příklad
A nyní pojďme deklarovat proměnnou res,
jejíž hodnotou bude objekt, který jsme získali
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 dostaneme dva objekty Match object:
<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. Můžeme z nich vypsat shody podle indexu:
for el in res:
print(el[0])
Výsledek provedení kódu:
'123'
'456'
Příklad
Pro větší názornost použijme při hledání shod zachytávací skupiny. A při procházení objektů cyklem vypišme první shodu (bude považována za nultou zachytávací skupinu), a také její prvky, také rozdělené do zachytávacích skupin:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Po provedení kódu dostaneme nultou zachytávací skupinu, tj. celý podřetězec, a také první a druhý znak z tohoto podřetězce:
'12' '1' '2'
'45' '4' '5'
Viz také
-
metoda
findallmodulure,
která vrací seznam všech shod v řetězci -
metoda
searchmodulure,
která hledá první shodu s regulárním výrazem v řetězci -
metoda
matchmodulure,
která hledá shodu s regulárním výrazem na začátku řetězce -
metoda
fullmatchmodulure,
která hledá všechny shody s regulárním výrazem v řetězci -
objekt
Match objectmodulure,
který obsahuje informace o shodách s regulárním výrazem -
metoda
splitmodulure,
která rozděluje řetězec na seznam podle zadaného oddělovače