Metoden finditer i modulet re
Metoden finditer i modulet re
returnerer en iterator til alle matches med et regulært udtryk
i en streng. I den første parameter for metoden angiver vi
det regulære udtryk. I den anden parameter angiver vi
strengen, hvor vi søger efter det regulære udtryk. I den tredje
valgfrie parameter kan vi angive flag.
Metoden kontrollerer alle matches ved at søge efter dem
fra venstre mod højre.
Syntaks
import re
re.finditer(regulært_udtryk, streng, [flag])
Eksempel
Lad os finde alle understrenge med cifre i vores streng:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Resultatet af udførelsen af koden:
<callable_iterator object at 0x000002AA891300A0>
Eksempel
Lad os nu deklarere variablen res,
hvis værdi vil være objektet, vi modtog
i det foregående eksempel. Derefter itererer vi
over det med en løkke:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Efter udførelsen af koden modtager vi to Match-objekter:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Disse objekter indeholder information om alle matches med det regulære udtryk i form af en tuple. Vi kan udtrække matches fra dem vha. indeks:
for el in res:
print(el[0])
Resultatet af udførelsen af koden:
'123'
'456'
Eksempel
For større klarhed, lad os under søgningen efter matches bruge grupper. Og ved iteration over objekterne i løkken udskriver vi det første match (det vil betragtes som gruppe nul), samt dens elementer, også fordelt i grupper:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Efter udførelsen af koden modtager vi gruppe nul, dvs. hele understrengen, samt det første og andet tegn fra denne understreng:
'12' '1' '2'
'45' '4' '5'
Se også
-
metoden
findalli moduletre,
som returnerer en liste med alle matches i strengen -
metoden
searchi moduletre,
som søger efter det første match med det regulære udtryk i strengen -
metoden
matchi moduletre,
som søger efter match med det regulære udtryk i begyndelsen af strengen -
metoden
fullmatchi moduletre,
som søger efter alle matches med det regulære udtryk i strengen -
objektet
Match objecti moduletre,
som indeholder information om matches med det regulære udtryk -
metoden
spliti moduletre,
som opdeler en streng i en liste baseret på den angivne separator