Python'da Düzenli İfadelerde Küme Parantezleri
'+', '*', '?' operatörleri
kullanışlıdır, ancak belirli bir tekrar sayısı
belirtmek için kullanılamazlar. Bu durumda
{} operatörü imdadınıza yetişecektir.
Şu şekilde çalışır: {5}
- beş tekrar, {2,5} – iki ile beş arasında tekrar
(ikisi de dahil), {2,}
- iki veya daha fazla tekrar. Örneklere
bakın:
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'x' harfi, 'a' harfi
bir veya iki kez, 'x' harfi:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{1,2}x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'xx ! ! xaaax'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'x' harfi, 'a' harfi
iki kez veya daha fazla, 'x' harfi:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{2,}x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'xx xax ! !'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'x' harfi, 'a' harfi
üç kez, 'x' harfi:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{3}x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'xx xax xaax !'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
'a' harfi on kez:
txt = 'aaa aaaaaaaaaa aaa'
res = re.sub('a{10}', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'aaa ! aaa'
Örnek
Bu örnekte şu kalıp bulunmaktadır:
'x' harfi, 'a' harfi üç kez
veya daha az, 'x' harfi. Bunu
gerçekleştirmek için, 3 rakamının önüne
bir sayı belirtmeyip sadece virgül
koyabilirsiniz:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{,3}x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! !'
Örnek
3 önündeki sıfır da kabul edilir:
txt = 'xx xax xaax xaaax'
res = re.sub('xa{0,3}x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! !'
Pratik Görevler
Bir dize verildi:
txt = 'aa aba abba abbba abbbba abbbbba'
'abba', 'abbba', 'abbbba'
dizelerini ve sadece onları bulan bir düzenli ifade yazın.
Bir dize verildi:
txt = 'aa aba abba abbba abbbba abbbbba'
'aba' şeklinde, içinde 'b'
harfinin 3-ten (dahil) az bulunduğu
dizeleri bulan bir düzenli ifade yazın.
Bir dize verildi:
txt = 'aa aba abba abbba abbbba abbbbba'
'aba' şeklinde, içinde 'b'
harfinin 4-ten (dahil) fazla bulunduğu
dizeleri bulan bir düzenli ifade yazın.