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
import 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:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Wynik wykonania kodu:
<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ą:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Po wykonaniu kodu otrzymamy dwa obiekty Match object:
<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:
for el in res:
print(el[0])
Wynik wykonania kodu:
'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:
txt = '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:
'12' '1' '2'
'45' '4' '5'
Zobacz też
-
metoda
findallmodułure,
która zwraca listę wszystkich dopasowań w ciągu znaków -
metoda
searchmodułure,
która szuka pierwszego dopasowania do wyrażenia regularnego w ciągu znaków -
metoda
matchmodułure,
która szuka dopasowania do wyrażenia regularnego na początku ciągu znaków -
metoda
fullmatchmodułure,
która szuka wszystkich dopasowań do wyrażenia regularnego w ciągu znaków -
obiekt
Match objectmodułure,
który zawiera informacje o dopasowaniach do wyrażenia regularnego -
metoda
splitmodułure,
która dzieli ciąg znaków na listę według określonego separatora