Metoden finditer i modulen re

Metoden finditer i modulen re returnerer en iterator for alle treff med regulært uttrykk i en streng. I den første parameteren til metoden spesifiserer vi det regulære uttrykket. I den andre parameteren setter vi strengen vi søker i. I den tredje valgfrie parameteren kan vi sette flagg. Metoden sjekker alle treff, og søker etter dem venstre til høyre.

Syntaks

pythonimport re

re.finditer(regulært_uttrykk, streng, [flagg])

Eksempel

La oss finne alle delstrenger med sifre i vår streng:

pythontxt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)

print(res)

Resultatet av kjøring av koden:

python<callable_iterator object at 0x000002AA891300A0>

Eksempel

La oss nå deklarere variabelen res, hvis verdi vil være objektet vi fikk i forrige eksempel. Deretter itererer vi over den med en løkke:

pythontxt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)

for el in res:
  print(el)

Etter kjøring av koden får vi to Match-objekter:

python<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>

Disse objektene inneholder informasjon om alle treff med det regulære uttrykket i form av en tuple. Vi kan hente ut treffene fra dem ved indeks:

pythonfor el in res:
  print(el[0])

Resultatet av kjøring av koden:

python'123'
'456'

Eksempel

For større klarhet, la oss ved søk etter treff bruke grupper. Og ved iterering over objektene i løkken, skriver vi ut det første treffet (det vil bli regnet som den nullte gruppen), samt dens elementer, også i sin tur fordelt på grupper:

pythontxt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)

for el in res:
  print(el[0], el[1], el[2])

Etter kjøring av koden får vi den nullte gruppen, dvs. hele delstrengen, samt det første og andre tegnet fra denne delstrengen:

python'12' '1' '2'
'45' '4' '5'

Se også

  • metoden findall i modulen re,
    som returnerer en liste med alle treff i strengen
  • metoden search i modulen re,
    som søker etter det første treffet med regulært uttrykk i strengen
  • metoden match i modulen re,
    som søker etter treff med regulært uttrykk i begynnelsen av strengen
  • metoden fullmatch i modulen re,
    som søker etter alle treff med regulært uttrykk i strengen
  • objektet Match object i modulen re,
    som inneholder informasjon om treff med regulært uttrykk
  • metoden split i modulen re,
    som deler en streng i en liste etter angitt skilletegn