Python'da Düzenli İfadelerde finditer Metodu
finditer metodu, bir dizgedeki düzenli ifadeyle
eşleşen tüm sonuçların bir yineleyici olarak
alınması için kullanılır. Metodun ilk parametresinde
aranacak düzenli ifadeyi, ikinci parametresinde ise
içinde arama yapılacak dizgeyi belirtiriz. Metot,
tüm eşleşmeleri soldan sağa doğru kontrol eder.
Metot, eşleşme nesnelerinin bir yineleyicisini
döndürür. finditer metodunun sözdizimi
şu şekildedir:
re.finditer(ne aranacak, nerede aranacak)
Dizgemizdeki tüm rakam içeren alt dizgileri bulalım:
txt = 'aaaa 123 bbbb 456'
print(re.finditer('\d+', txt))
Kodun çalıştırılmasının sonucu:
<callable_iterator object at 0x000002AA891300A0>
Şimdi bir önceki örnekte elde ettiğimiz nesneyi
değer olarak alan res adlı bir değişken
tanımlayalım. Ardından onu bir döngüyle
gezelim:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Kod çalıştırıldıktan sonra iki adet eşleşme (match) nesnesi yazdırılacak:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Bu nesneler, düzenli ifadeyle tüm eşleşmelerin bilgisini bir demet (tuple) olarak içerir. Bunlardan eşleşmeleri indeks numarasına göre yazdırabiliriz:
for el in res:
print(el[0])
Kodun çalıştırılmasının sonucu:
'123'
'456'
Bir dizge veriliyor:
txt = '12 aaa 34 bbb 56 ccc'
Bu dizgedeki tüm sayıları bir döngü kullanarak yazdırın.