Metoden finditer i reguljära uttryck i Python
Metoden finditer är avsedd för
att erhålla en iterator över alla träffar med
det reguljära uttrycket i strängen. I den första parametern
anger vi det reguljära uttrycket som vi ska
söka efter, i den andra parametern - strängen
där vi söker. Metoden kontrollerar alla träffar,
och söker efter dem från vänster till höger. Metoden returnerar
en iterator med match-objekt. Syntaxen för
metoden finditer ser ut så här:
re.finditer(vad som ska sökas, var att söka)
Låt oss hitta alla delsträngar med siffror i vår sträng:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Resultatet av att exekvera koden:
<callable_iterator object at 0x000002AA891300A0>
Låt oss nu deklarera en variabel res,
vars värde blir objektet vi fick
i föregående exempel. Sedan itererar vi över
den med en loop:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Efter exekvering av koden kommer två match-objekt att skrivas ut:
<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. Man kan skriva ut träffarna med index:
for el in res:
print(el[0])
Resultatet av att exekvera koden:
'123'
'456'
Given en sträng:
txt = '12 aaa 34 bbb 56 ccc'
Skriv ut alla tal från den med hjälp av en loop.