Metoda finditer modula re

Metoda finditer modula re vrne iterator vseh ujemanj z regularnim izrazom v nizu. V prvem parametru metode podamo regularni izraz. V drugem parametru nastavimo niz, v katerem iščemo regularni izraz. V tretjem opcijskem parametru lahko nastavimo zastavice. Metoda preveri vsa ujemanja, jih išče od leve proti desni.

Sintaksa

pythonimport re

re.finditer(regularni_izraz, niz, [zastavice])

Primer

Poiščimo vse podnize s številkami v našem nizu:

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

print(res)

Rezultat izvajanja kode:

python<callable_iterator object at 0x000002AA891300A0>

Primer

In sedaj deklarirajmo spremenljivko res, katere vrednost bo objekt, ki smo ga prejeli v prejšnjem primeru. Nato ga ponovimo z zanko:

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

for el in res:
  print(el)

Po izvedbi kode dobimo dva objekta Match object:

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

Ti objekti vsebujejo informacije o vseh ujemanjih z regularnim izrazom v obliki terke. Iz njih lahko izpišemo ujemanja po indeksu:

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

Rezultat izvajanja kode:

python'123'
'456'

Primer

Za večjo nazornost uporabimo pri iskanju ujemanj zajemalne skupine. In pri ponavljanju objektov z zanko izpišimo prvo ujemanje (štelo bo kot ničta zajemalna skupina), in tudi njegove elemente, prav tako razporejene po zajemalnih skupinah:

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

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

Po izvedbi kode dobimo ničlo zajemalno skupino, t.j. celoten podniz, in tudi prvi in drugi znak iz tega podniza:

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

Glejte tudi

  • metoda findall modula re,
    ki vrne seznam vseh ujemanj v nizu
  • metoda search modula re,
    ki išče prvo ujemanje z regularnim izrazom v nizu
  • metoda match modula re,
    ki išče ujemanje z regularnim izrazom na začetku niza
  • metoda fullmatch modula re,
    ki išče vsa ujemanja z regularnim izrazom v nizu
  • objekt Match object modula re,
    ki vsebuje informacije o ujemanjih z regularnim izrazom
  • metoda split modula re,
    ki razdeli niz na seznam glede na določen ločilo