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:

pythonre.finditer(co szukać, gdzie szukać)

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

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

Wynik wykonania kodu:

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

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

for el in res:
  print(el)

Po wykonaniu kodu wypiszą się dwa obiekty match:

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żna z nich wypisać dopasowania po indeksie:

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

Wynik wykonania kodu:

python'123'
'456'
Задание 1

Dany ciąg znaków:

pythontxt = '12 aaa 34 bbb 56 ccc'

Wypisz z niego wszystkie liczby za pomocą pętli.