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

pythonimport re

re.finditer(regulært_udtryk, streng, [flag])

Eksempel

Lad os finde alle understrenge med cifre i vores streng:

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

print(res)

Resultatet af udførelsen af koden:

python<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:

pythontxt = '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:

python<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:

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

Resultatet af udførelsen af koden:

python'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:

pythontxt = '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:

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

Se også

  • metoden findall i modulet re,
    som returnerer en liste med alle matches i strengen
  • metoden search i modulet re,
    som søger efter det første match med det regulære udtryk i strengen
  • metoden match i modulet re,
    som søger efter match med det regulære udtryk i begyndelsen af strengen
  • metoden fullmatch i modulet re,
    som søger efter alle matches med det regulære udtryk i strengen
  • objektet Match object i modulet re,
    som indeholder information om matches med det regulære udtryk
  • metoden split i modulet re,
    som opdeler en streng i en liste baseret på den angivne separator