Karakter Tekrarlama Operatörleri
Bir karakterin belirli sayıda tekrarlandığını belirtmenin gerektiği durumlar olur.
Eğer tam tekrar sayısı bilinmiyorsa,
basitçe birkaç kez yazılabilir
- 'aaaa'. Peki şöyle bir şey demek gerekiyorsa ne yapmalı: bir veya daha fazla kez tekrarla?
Bunun için tekrarlama operatörleri (niceleyiciler)
vardır: artı + (bir veya daha fazla kez),
yıldız * (sıfır veya daha fazla kez)
ve soru işareti ? (sıfır veya bir kez).
Bu operatörler kendilerinden önce gelen karaktere etki eder.
Bu operatörlerin çalışmasını örneklerle inceleyelim.
Örnek
Şu kalıba göre tüm alt dizileri bulalım: harf
'x', 'a' harfi bir veya daha fazla kez,
'x' harfi:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa+x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'xx ! ! ! xbx'
Örnek
Şu kalıba göre tüm alt dizileri bulalım: harf
'x', 'a' harfi sıfır veya daha fazla kez,
'x' harfi:
txt = 'xx xax xaax xaaax xbx'
res = re.sub('xa*x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! ! xbx'
Örnek
Şu kalıba göre tüm alt dizileri bulalım: harf
'x', 'a' harfi sıfır veya bir kez,
'x' harfi:
txt = 'xx xax xaax xbx'
res = re.sub('xa?x', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! xaax xbx'
Pratik Görevler
Bir dize verildi:
txt = 'aa aba abba abbba abca abea'
Şu kalıba göre 'aba', 'abba', 'abbba'
dizilerini bulacak bir düzenli ifade yazın:
'a' harfi, 'b' harfi herhangi bir sayıda,
'a' harfi.
Bir dize verildi:
txt = 'aa aba abba abbba abca abea'
Şu kalıba göre 'aa', 'aba', 'abba',
'abbba' dizilerini bulacak bir düzenli ifade yazın:
'a' harfi, 'b' harfi herhangi bir sayıda (hiç olmaması da dahil),
'a' harfi.
Bir dize verildi:
txt = 'aa aba abba abbba abca abea'
Şu kalıba göre 'aa', 'aba'
dizilerini bulacak bir düzenli ifade yazın:
'a' harfi, 'b' harfi bir kez veya hiç,
'a' harfi.
Bir dize verildi:
txt = 'aa aba abba abbba abca abea'
'abca' ve 'abea''yı yakalamadan,
'aa', 'aba', 'abba',
'abbba' dizilerini bulacak bir düzenli ifade yazın.