Metóda finditer modulu re

Metóda finditer modulu re vracia iterátor všetkých zhôd s regulárnym výrazom v reťazci. V prvom parametri metódy určujeme regulárny výraz. V druhom parametri zadávame reťazec, v ktorom hľadáme regulárny výraz. V treťom voliteľnom parametri môžeme zadať príznaky. Metóda kontroluje všetky zhody, hľadajúc ich zľava doprava.

Syntax

pythonimport re

re.finditer(regulárny výraz, reťazec, [príznaky])

Príklad

Nájdime všetky podreťazce s číslicami v našom reťazci:

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

print(res)

Výsledok vykonania kódu:

python<callable_iterator object at 0x000002AA891300A0>

Príklad

A teraz deklarujme premennú res, ktorej hodnotou bude objekt, ktorý sme dostali v predchádzajúcom príklade. Potom ho prejdeme cyklom:

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

for el in res:
  print(el)

Po vykonaní kódu dostaneme dva objekty Match object:

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

Tieto objekty obsahujú informácie o všetkých zhodách s regulárnym výrazom vo forme n-tice. Môžeme z nich vypísať zhody podľa indexu:

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

Výsledok vykonania kódu:

python'123'
'456'

Príklad

Pre väčšiu názornosť použime pri hľadaní zhôd zachytávacie skupiny. A pri prechádzaní objektov cyklu vypíšme prvú zhodu (bude považovaná za nulovú zachytávaciu skupinu), a tiež jej prvky, tiež zasa rozhádzané po zachytávacích skupinách:

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

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

Po vykonaní kódu dostaneme nulovú zachytávaciu skupinu, t.j. celý podreťazec, a tiež prvý a druhý znak z tohto podreťazca:

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

Pozri tiež

  • metóda findall modulu re,
    ktorá vracia zoznam všetkých zhôd v reťazci
  • metóda search modulu re,
    ktorá hľadá prvú zhodu s regulárnym výrazom v reťazci
  • metóda match modulu re,
    ktorá hľadá zhodu s regulárnym výrazom na začiatku reťazca
  • metóda fullmatch modulu re,
    ktorá hľadá všetky zhody s regulárnym výrazom v reťazci
  • objekt Match object modulu re,
    ktorý obsahuje informácie o zhodách s regulárnym výrazom
  • metóda split modulu re,
    ktorá rozdeľuje reťazec na zoznam podľa zadaného oddeľovača