Метад finditer модуля re

Метад finditer модуля re вяртае ітэратар усіх супадзенняў з рэгулярным выразам у радку. У першым параметры метада ўказваем рэгулярку. У другім параметры задаем радок, у якім шукаем рэгулярку. У трэцім неабавязковым параметры можна задаць флагі. Метад правярае ўсе супадзенні, шукаючы іх злева направа.

Сінтаксіс

pythonimport re

re.finditer(рэгулярка, радок, [флагі])

Прыклад

Давайце знойдзем усе падрадкі з лічбамі ў нашай радку:

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

print(res)

Вынік выканання кода:

python<callable_iterator object at 0x000002AA891300A0>

Прыклад

А цяпер давайце аб'явім зменную res, значэннем якой будзе аб'ект, атрыманы намі ў папярэднім прыкладзе. Затым перабярэм яго цыклам:

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

for el in res:
  print(el)

Пасля выканання кода мы атрымаем два аб'екты Match object:

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

Гэтыя аб'екты ўтрымліваюць інфармацыю аб усіх супадзеннях з рэгуляркай у выглядзе карэжа. Мы можам вывесці з іх супадзенні па індэксе:

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

Вынік выканання кода:

python'123'
'456'

Прыклад

Для большай нагляднасці давайце пры пошуку супадзенняў будзем выкарыстоўваць карманы. А пры пераборы аб'ектаў цыкла выведзем першае супадзенне (яно будзе лічыцца нулявым карманам), а таксама яго элементы, таксама ў свой чарод раскіданыя па карманах:

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

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

Пасля выканання кода мы атрымаем нулявы карман, г.зн. усю падрадку, а таксама першы і другі сімвал з гэтай падрадкі:

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

Глядзіце таксама

  • метад findall модуля re,
    які вяртае спіс з усіх супадзенняў у радку
  • метад search модуля re,
    які шукае першае супадзенне з рэгуляркай у радку
  • метад match модуля re,
    які шукае супадзенне з рэгуляркай у пачатку радка
  • метад fullmatch модуля re,
    які шукае ўсе супадзенні з рэгуляркай у радку
  • аб'ект Match object модуля re,
    які ўтрымлівае інфармацыю аб супадзеннях з рэгуляркай
  • метад split модуля re,
    які разбівае радок на спіс па ўказаным падзяляльніку