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:

pythontxt = 'aaa bbb abb'
res = re.sub('a{3}|b{3}', '!', txt)

print(res)

Kodun çalıştırılmasının sonucu:

python'! ! abb'

Örnek

Bu örnekte arama kalıbı şu şekildedir: üç tane 'a' harfi veya 1 ve daha fazla 'b' harfi:

pythontxt = 'aaa bbb bbbb bbbbb axx'
res = re.sub('a{3}|b+', '!', txt)

print(res)

Kodun çalıştırılmasının sonucu:

python'! ! ! ! axx'

Örnek

Bu örnekte arama kalıbı şu şekildedir: bir veya daha fazla harf veya üç rakam:

pythontxt = 'a ab abc 1 12 123'
res = re.sub('[a-z]+|\d{3}', '!', txt)

print(res)

Kodun çalıştırılmasının sonucu:

python'! ! ! 1 12 !'

Örnek

Dikey çubuk, düzenli ifadeyi iki parçaya değil, istediğiniz sayıda parçaya bölebilir:

pythontxt = 'aaa bbb ccc ddd'
res = re.sub('a+|b+|c+', '!', txt)

print(res)

Kodun çalıştırılmasının sonucu:

python'! ! ! 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:

pythontxt = 'axx bxx bbxx exx'
res = re.sub('(a|b+)xx', '!', txt)

print(res)

Kodun çalıştırılmasının sonucu:

python'! ! ! exx'

Pratik Görevler

Задание 1

Bir metin verilmiştir:

pythontxt = '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.

Задание 2

Bir metin verilmiştir:

pythontxt = '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.