A finditer metódus
A finditer metódus a re modulból
egy iterátort ad vissza a reguláris kifejezéssel
talált összes egyezésről a sztringben. Az első paraméterben adjuk meg
a reguláris kifejezést. A második paraméterben adjuk meg
a sztringet, amiben keresünk. A harmadik
opcionális paraméterben megadhatunk flag-eket.
A metódus balról jobbra haladva ellenőriz minden egyezést.
Szintaxis
import re
re.finditer(reguláris_kifejezés, sztring, [flag-ek])
Példa
Keressük meg az összes számjegyet tartalmazó részsztringet a mi sztringünkben:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
A kód végrehajtásának eredménye:
<callable_iterator object at 0x000002AA891300A0>
Példa
Most deklaráljuk a res változót,
aminek értéke az előző példában kapott objektum.
Ezután iteráljunk rajta egy ciklussal:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
A kód végrehajtása után két Match objektumot kapunk:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Ezek az objektumok egy tuple formájában tartalmazzák a reguláris kifejezéssel talált összes egyezés információit. Kiírathatjuk belőlük az egyezéseket index alapján:
for el in res:
print(el[0])
A kód végrehajtásának eredménye:
'123'
'456'
Példa
A jobb áttekinthetőség érdekében használjunk zárójelezést (capture groups) az egyezések keresésekor. A ciklusban való iterálás során írassuk ki az első egyezést (ami a nulla indexű zárójelnek felel meg), valamint annak elemeit, amelyek szintén zárójelekbe vannak csoportosítva:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
A kód végrehajtása után megkapjuk a nulla indexű zárójelet, azaz az egész részsztringet, valamint az első és második karaktert ebből a részsztringből:
'12' '1' '2'
'45' '4' '5'
Lásd még
-
a
findallmetódus aremodulból,
amely egy listát ad vissza a sztringben talált összes egyezésről -
a
searchmetódus aremodulból,
amely az első reguláris kifejezéssel való egyezést keresi a sztringben -
a
matchmetódus aremodulból,
amely a reguláris kifejezéssel való egyezést keresi a sztring elején -
a
fullmatchmetódus aremodulból,
amely az összes reguláris kifejezéssel való egyezést keresi a sztringben -
a
Match objectobjektum aremodulból,
amely információt tartalmaz a reguláris kifejezéssel való egyezésekről -
a
splitmetódus aremodulból,
amely felosztja a sztringet listáva a megadott elválasztó alapján