Python'da Düzenli İfadelerde 'veya' Komutu
Komut '|',
[ ] komutuna kıyasla daha güçlü bir
'veya' varyantını
temsil eder. Bu komut,
düzenli ifadeyi birkaç parçaya
bölmenize olanak tanır. Bu durumda,
aranan ifade ya düzenli ifadenin bir
parçasına ya da diğerine uyar.
Örneklerle inceleyelim.
Örnek
Bu örnekte arama kalıbı şu şekildedir:
üç tane 'a' harfi veya üç tane
'b' harfi:
txt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! abb'
Örnek
Bu örnekte arama kalıbı şu şekildedir:
üç tane 'a' harfi veya 1 ve
daha fazla 'b' harfi:
txt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! ! axx'
Örnek
Bu örnekte arama kalıbı şu şekildedir: bir veya daha fazla harf veya üç rakam:
txt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! 1 12 !'
Örnek
Dikey çubuk, düzenli ifadeyi iki parçaya değil, istediğiniz sayıda parçaya bölebilir:
txt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! ddd'
Örnek
Eğer dikey çubuk yuvarlak parantezlerin
içinde yer alıyorsa, 'veya' işlemi
sadece bu parantezlerin içinde çalışır.
Örnek olarak, aşağıdaki kalıba uyan
metinleri bulalım: başında bir veya daha fazla kez
'a' veya 'b' bulunur, ardından iki tane
'x' harfi gelir:
txt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)
print(res)
Kodun çalıştırılmasının sonucu:
'! ! ! exx'
Pratik Görevler
Bir metin verilmiştir:
txt = 'aeeea aeea aea axa axxa axxxa'
Aşağıdaki kalıba uyan metinleri bulan bir düzenli ifade yazın:
kenarlarda 'a' harfleri bulunur,
aralarında ise - ya herhangi bir sayıda 'e'
harfi veya herhangi bir sayıda 'x' harfi.
Bir metin verilmiştir:
txt = 'aeeea aeea aea axa axxa axxxa'
Aşağıdaki kalıba uyan metinleri bulan bir düzenli ifade yazın:
kenarlarda 'a' harfleri bulunur,
aralarında ise - ya iki kez 'e'
harfi veya herhangi bir sayıda 'x' harfi.