re modülünün finditer metodu
re modülünün finditer metodu,
bir dize içindeki düzenli ifade ile
tüm eşleşmelerin bir yineleyicisini döndürür. Metodun ilk parametresinde
düzenli ifadeyi belirtiriz. İkinci parametrede
içinde arama yapacağımız dizeyi belirleriz. Üçüncü
isteğe bağlı parametrede bayraklar ayarlanabilir.
Metod, soldan sağa doğru arayarak
tüm eşleşmeleri kontrol eder.
Sözdizimi
import re
re.finditer(düzenli_ifade, dize, [bayraklar])
Örnek
Dizimizdeki tüm rakam içeren alt dizileri bulalım:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Kodun çalıştırılmasının sonucu:
<callable_iterator object at 0x000002AA891300A0>
Örnek
Şimdi res değişkenini tanımlayalım,
değeri önceki örnekte elde ettiğimiz
nesne olsun. Sonra onu bir döngü ile
gezelim:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Kod çalıştıktan sonra iki tane Match nesnesi elde ederiz:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Bu nesneler, düzenli ifade ile tüm eşleşmelere ilişkin bilgiyi bir demet olarak içerir. Bunlardan indeks ile eşleşmeleri çıktılayabiliriz:
for el in res:
print(el[0])
Kodun çalıştırılmasının sonucu:
'123'
'456'
Örnek
Daha net anlaşılması için eşleşmeleri aranırken yakalama gruplarını kullanalım. Döngü ile nesneleri gezerken ilk eşleşmeyi (sıfırıncı yakalama grubu sayılacaktır) ve onun öğelerini, onlar da sırayla yakalama gruplarına dağıtılmış şekilde çıktılayalım:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Kod çalıştıktan sonra sıfırıncı yakalama grubunu, yani tüm alt dizeyi, ve ayrıca bu alt dizedeki birinci ve ikinci karakterleri elde ederiz:
'12' '1' '2'
'45' '4' '5'
Ayrıca bakınız
-
findallmetodu,remodülü,
bir dizedeki tüm eşleşmelerin listesini döndürür -
searchmetodu,remodülü,
bir dizede düzenli ifade ile ilk eşleşmeyi arar -
matchmetodu,remodülü,
bir dizenin başında düzenli ifade ile eşleşme arar -
fullmatchmetodu,remodülü,
bir dizede düzenli ifade ile tüm eşleşmeleri arar -
Match objectnesnesi,remodülü,
düzenli ifade ile eşleşmelere ilişkin bilgi içerir -
splitmetodu,remodülü,
bir dizeyi belirtilen ayırıcıya göre listeye böler