Python-da regular ifadeleriň finditer usuly
finditer usuly setirde regular ifade bilen
hemme gabat gelişleriň iteratoryny almak üçin
niýetlenendir. Usulyň birinji parametrinde gözleýän
regular ifademizi, ikinji parametrinde gözleýän
setirimizi görkezyäris. Usul hemme gabat gelişleri
sol tarapdan sag tarapa gözleýär. Usul gabat geliş
objektleriniň iteratoryny yzyna gaýtarýar.
finditer usulynyň sintaksisi şeýle görünýär:
re.finditer(nağma gözlemeli, nirede gözlemeli)
Geliň setirimizdäki hemme sanly kiçi setirleri tapalyň:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Kody ýerine ýetirmegiň netijesi:
<callable_iterator object at 0x000002AA891300A0>
Indi bolsa, bir öňki mysalda alan objekdimizi
bahasy hökmünde aljak res üýtgeýjisini
ýazyşdyryp, ony aýlaw bilen geçeliň:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Kod ýerine ýetirilenden soň iki match-objekt çap ediler:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Bu objekter hemme gabat gelişler barada maglumatlary kortej görnüşinde saklaýar. Olardan gabat gelişleri indeks boýunça çap etmek bolýar:
for el in res:
print(el[0])
Kody ýerine ýetirmegiň netijesi:
'123'
'456'
Setir berlen:
txt = '12 aaa 34 bbb 56 ccc'
Ondan aýlaw ulanyp hemme sanlary çap ediň.