Python-da Regulyar Ifadələrdə finditer metodu
finditer metodu
sətirdə regulyar ifadə ilə uyğun gələn bütün
uyğunluqların iteratorunu əldə etmək üçün
nəzərdə tutulub. Metodun birinci parametrində
axtaracağımız regulyar ifadəni, ikinci
parametrində isə axtarış aparacağımız sətri
göstəririk. Metod soldan sağa axtarış edərək
bütün uyğunluqları yoxlayır. Metod uyğunluq
obyektlərinin iteratorunu qaytarır.
finditer metodunun sintaksisi
belədir:
re.finditer(nəyi axtarmaq, harda axtarmaq)
Gəlin sətirimizdəki bütün rəqəm alt sətirlərini tapaq:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Kodu icra etdikdən sonra alınan nəticə:
<callable_iterator object at 0x000002AA891300A0>
İndi gəlin res dəyişənini elan edək,
onun qiyməti əvvəlki nümunədə əldə etdiyimiz
obyekt olsun. Sonra onu dövrə ilə gəzək:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Kod icra edildikdən sonra iki uyğunluq-obyekti (match-object) çap olunacaq:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Bu obyektlər regulyar ifadə ilə bütün uyğunluqlar haqqında məlumatı tuple şəklində ehtiva edir. Obyektlərdən indeksə görə uyğunluqları çıxarmaq olar:
for el in res:
print(el[0])
Kodu icra etdikdən sonra alınan nəticə:
'123'
'456'
Sətir verilib:
txt = '12 aaa 34 bbb 56 ccc'
Dövr vasitəsilə ondan bütün rəqəmləri çıxarın.