Metoden finditer i modulen re
Metoden finditer i modulen re
returnerar en iterator för alla träffar med ett reguljärt uttryck
i en sträng. I metodens första parameter anger vi
det reguljära uttrycket. I den andra parametern anger vi
strängen där vi söker efter det reguljära uttrycket. I den tredje
valfria parametern kan vi ange flaggor.
Metoden kontrollerar alla träffar och söker efter dem
från vänster till höger.
Syntax
import re
re.finditer(reguljärt_uttryck, sträng, [flaggor])
Exempel
Låt oss hitta alla delsträngar med siffror i vår sträng:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Resultatet av att köra koden:
<callable_iterator object at 0x000002AA891300A0>
Exempel
Och nu låt oss deklarera variabeln res,
vars värde är objektet vi fick
i föregående exempel. Sedan itererar vi över
det med en loop:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Efter att ha kört koden får vi två Match-objekt:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Dessa objekt innehåller information om alla träffar med det reguljära uttrycket i form av en tupel. Vi kan skriva ut träffarna från dem med index:
for el in res:
print(el[0])
Resultatet av att köra koden:
'123'
'456'
Exempel
För mer tydlighet, låt oss använda fångstgrupper när vi söker efter träffar. Och när vi itererar över objekten i loopen, skriver vi ut den första träffen (den kommer att räknas som den nollte fångstgruppen), samt dess element, också i sig fördelade över fångstgrupper:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Efter att ha kört koden får vi den nollte fångstgruppen, dvs. hela delsträngen, samt den första och andra siffran från denna delsträng:
'12' '1' '2'
'45' '4' '5'
Se även
-
metoden
findalli modulenre,
som returnerar en lista med alla träffar i strängen -
metoden
searchi modulenre,
som söker efter den första träffen med det reguljära uttrycket i strängen -
metoden
matchi modulenre,
som söker efter träff med det reguljära uttrycket i början av strängen -
metoden
fullmatchi modulenre,
som söker efter alla träffar med det reguljära uttrycket i strängen -
objektet
Match objecti modulenre,
som innehåller information om träffar med det reguljära uttrycket -
metoden
spliti modulenre,
som delar upp en sträng till en lista med en angiven avgränsare