Metoda finditer w wyrażeniach regularnych Pythona
Metoda finditer jest przeznaczona do
uzyskania iteratora wszystkich dopasowań
wyrażenia regularnego w ciągu znaków. W pierwszym parametrze
metody określamy wyrażenie regularne, które będziemy
szukać, w drugim parametrze - ciąg znaków,
w którym szukamy. Metoda sprawdza wszystkie dopasowania,
szukając ich od lewej do prawej. Metoda zwraca
iterator obiektów dopasowania. Składnia
metody finditer wygląda tak:
re.finditer(co szukać, gdzie szukać)
Znajdźmy wszystkie podciągi z cyframi w naszym ciągu znaków:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Wynik wykonania kodu:
<callable_iterator object at 0x000002AA891300A0>
A teraz zadeklarujmy zmienną res,
której wartością będzie obiekt otrzymany
przez nas w poprzednim przykładzie. Następnie przeiterujmy
ją pętlą:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Po wykonaniu kodu wypiszą się dwa obiekty match:
<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żna z nich wypisać dopasowania po indeksie:
for el in res:
print(el[0])
Wynik wykonania kodu:
'123'
'456'
Dany ciąg znaków:
txt = '12 aaa 34 bbb 56 ccc'
Wypisz z niego wszystkie liczby za pomocą pętli.