Metoda finditer modułu re

Metoda finditer modułu re zwraca iterator wszystkich dopasowań do wyrażenia regularnego w ciągu znaków. W pierwszym parametrze metody określamy wyrażenie regularne. W drugim parametrze ustawiamy ciąg znaków, w którym szukamy wyrażenia. W trzecim opcjonalnym parametrze można ustawić flagi. Metoda sprawdza wszystkie dopasowania, szukając ich od lewej do prawej.

Składnia

pythonimport re

re.finditer(wyrażenie regularne, ciąg znaków, [flagi])

Przykład

Znajdźmy wszystkie podciągi z cyframi w naszym ciągu znaków:

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

print(res)

Wynik wykonania kodu:

python<callable_iterator object at 0x000002AA891300A0>

Przykład

A teraz zadeklarujmy zmienną res, której wartością będzie obiekt otrzymany przez nas w poprzednim przykładzie. Następnie przeiterujmy przez niego pętlą:

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

for el in res:
  print(el)

Po wykonaniu kodu otrzymamy dwa obiekty Match object:

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

Te obiekty zawierają informacje o wszystkich dopasowaniach do wyrażenia regularnego w postaci krotki. Możemy wypisać z nich dopasowania po indeksie:

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

Wynik wykonania kodu:

python'123'
'456'

Przykład

Dla większej przejrzystości użyjmy podczas wyszukiwania dopasowań grup przechwytujących. A podczas iteracji po obiektach pętlą wypiszmy pierwsze dopasowanie (będzie ono uważane za zerową grupę przechwytującą), a także jego elementy, również z kolei rozdzielone na grupy przechwytujące:

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

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

Po wykonaniu kodu otrzymamy zerową grupę przechwytującą, czyli cały podciąg, a także pierwszy i drugi znak z tego podciągu:

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

Zobacz też

  • metoda findall modułu re,
    która zwraca listę wszystkich dopasowań w ciągu znaków
  • metoda search modułu re,
    która szuka pierwszego dopasowania do wyrażenia regularnego w ciągu znaków
  • metoda match modułu re,
    która szuka dopasowania do wyrażenia regularnego na początku ciągu znaków
  • metoda fullmatch modułu re,
    która szuka wszystkich dopasowań do wyrażenia regularnego w ciągu znaków
  • obiekt Match object modułu re,
    który zawiera informacje o dopasowaniach do wyrażenia regularnego
  • metoda split modułu re,
    która dzieli ciąg znaków na listę według określonego separatora