Метад finditer модуля re
Метад finditer модуля re
вяртае ітэратар усіх супадзенняў з рэгулярным выразам
у радку. У першым параметры метада ўказваем
рэгулярку. У другім параметры задаем
радок, у якім шукаем рэгулярку. У трэцім
неабавязковым параметры можна задаць флагі.
Метад правярае ўсе супадзенні, шукаючы іх
злева направа.
Сінтаксіс
import re
re.finditer(рэгулярка, радок, [флагі])
Прыклад
Давайце знойдзем усе падрадкі з лічбамі ў нашай радку:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Вынік выканання кода:
<callable_iterator object at 0x000002AA891300A0>
Прыклад
А цяпер давайце аб'явім зменную res,
значэннем якой будзе аб'ект, атрыманы
намі ў папярэднім прыкладзе. Затым перабярэм
яго цыклам:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Пасля выканання кода мы атрымаем два аб'екты Match object:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Гэтыя аб'екты ўтрымліваюць інфармацыю аб усіх супадзеннях з рэгуляркай у выглядзе карэжа. Мы можам вывесці з іх супадзенні па індэксе:
for el in res:
print(el[0])
Вынік выканання кода:
'123'
'456'
Прыклад
Для большай нагляднасці давайце пры пошуку супадзенняў будзем выкарыстоўваць карманы. А пры пераборы аб'ектаў цыкла выведзем першае супадзенне (яно будзе лічыцца нулявым карманам), а таксама яго элементы, таксама ў свой чарод раскіданыя па карманах:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Пасля выканання кода мы атрымаем нулявы карман, г.зн. усю падрадку, а таксама першы і другі сімвал з гэтай падрадкі:
'12' '1' '2'
'45' '4' '5'
Глядзіце таксама
-
метад
findallмодуляre,
які вяртае спіс з усіх супадзенняў у радку -
метад
searchмодуляre,
які шукае першае супадзенне з рэгуляркай у радку -
метад
matchмодуляre,
які шукае супадзенне з рэгуляркай у пачатку радка -
метад
fullmatchмодуляre,
які шукае ўсе супадзенні з рэгуляркай у радку -
аб'ект
Match objectмодуляre,
які ўтрымлівае інфармацыю аб супадзеннях з рэгуляркай -
метад
splitмодуляre,
які разбівае радок на спіс па ўказаным падзяляльніку