Python

Python RegEx – Düzenli İfadeler (Örnekli Anlatım)

Normal İfade veya Normal İfade, bir arama modeli oluşturan bir karakter dizisidir.

RegEx, bir dizenin belirtilen arama modelini içerip içermediğini kontrol etmek için kullanılabilir.

Bütün dillerin parçası olan bu terim , bir metni düzenlemek ya da metinden alt parçaları elde etmemize imkan sağlar.

Bunun için herhangi bir kurulum ihtiyacı gerektirmez çünkü “re” kütüphanesi standart olarak gelen kütüphaneler arasındadır yani projenin başında “import re” yazılması yeterli olacaktır.

RegEx Fonksiyonları

 

findall() Fonksiyonu

Findall () işlevi tüm eşleşmeleri içeren bir liste döndürür. Konu devamında FindAll fonksiyonu ile ilgili birçok örneğe ulaşabilirsiniz.

Örnek:

Çıktı:

Match() Fonksiyonu

Bu method verilen bir metin üzerinde belirtilmiş olan ifadeyi aramak , metin içeriğiyle eşleşip eşlemediğini bulmak için kullanılır fakat match methodu karakter dizisinin yalnız en başına bakar. Örnekleri inceleyelim.

Alttaki örnekte Dersleri kelimesi aranmaktadır. txt değişkeni içinde olduğu halde match() fonksiyonu en başa baktığı için sonuç None olarak dönecektir.

 

 

Aranan değer Python ifadesi olsaydı aşağıdaki gibi bir çıktı alacaktık.

Search() Fonksiyonu

Bu method match() methoduna oldukça benzemesine rağmen fark olarak match() methodu sadece en başında eşleştirme ararken search methodu metnin tamamına bakar yani match() methodunda elde edilemeyen sonuçlar match methodunda elde edilebilir.

 

Örnek 1:

Çıktı:

 

Eşleşme bulunmazsa None değeri döndürülür.

Örnek:

Split() Fonksiyonu

Split () fonksiyonu, dizenin her eşleşmede bölündüğü bir liste döndürür:

Örnek:

Çıktı:

 

Maxsplit parametresini belirterek oluşum sayısını kontrol edebilirsiniz:

 

Örnek:

Çıktı:

 

sub() Fonksiyonu

Sub () fonksiyonu , eşleşmeleri seçtiğiniz metinle değiştirir:

Örnek:

Çıktı:

count parametresini belirterek değiştirme sayısını kontrol edebilirsiniz:

Örnek:

Çıktı:

 

Metacharacters

Metakarakterler, özel bir anlamı olan karakterlerdir.

Bu konuda örnekler yaparak konuyu pekiştirelim.

Karakter Açıklama
[ ] Karakter dizisi
\ Özel bir sırayı işaret eder (özel karakterlerden kaçmak için de kullanılabilir)
. Herhangi bir karakter (yeni satır karakteri hariç)
^ … ile başlar
$ … ile biter
* Sıfır veya daha fazla olay
+ Bir veya daha fazla olay
{ } Tam olarak belirtilen sayıda oluşum
| Ya da

Şimdi yukarıdaki karakterleri kullanarak örnekler oluşturacağız.

 

Örnek 1: Metinde geçen “a ve “k” (Küçük harf) arası bulunan harfleri listeleyim.

Çıktı:

 

Örnek 2: Metindeki tüm sayısal karakterleri bulalım.

Çıktı:

 

Örnek 3: “He” ile başlayan, ardından iki (herhangi) karakter ve “o” ile başlayan bir dizi arayın:

Çıktı:

 

Örnek 4:  Metnin Python ile başlayıp başlamadığını kontrol edelim.

Çıktı:

 

Örnek 5: Metnin “Örnek” ile bitip bitmediğini kontrol edelim.

Çıktı:

 

Örnek 6:  Dizenin “ma”  karakteri içerip içermediğini kontrol edin:

Çıktı:

 

Örnek 7: Dizenin “i” ve ardından tam olarak iki “l” karakteri içerip içermediğini kontrol edin.

Çıktı:

 

Örnek 8: Metinde Python ya da ASP olup olmadığını kontrol edin.

Çıktı:

 

Özel Diziler

Özel bir sıra, \ ‘nin ardından aşağıdaki listede bulunan karakterlerden biridir ve özel bir anlamı vardır.

Karakter Açıklama
\A Belirtilen karakterler dizenin başındaysa bir eşleşme döndürür
\b Belirtilen karakterlerin bir kelimenin başında veya sonunda olduğu bir eşleşme döndürür
\B Belirtilen karakterlerin bulunduğu bir eşleşme döndürür, ancak bir kelimenin başında (veya sonunda) DEĞİLDİR
\d Dizenin basamak içerdiği bir eşleşme döndürür (0-9 arası sayılar)
\D Dizenin rakam içermediği bir eşleşme döndürür
\s Dizenin beyaz boşluk (boşluk karakteri)  içerdiği bir eşleşme döndürür
\S Dizenin beyaz boşluk karakteri İÇERMEDİĞİ bir eşleşme döndürür
\w Dizenin herhangi bir kelime karakteri içerdiği bir eşleşme döndürür (a’dan Z’ye karakterler, 0-9 arası rakamlar ve alt çizgi _ karakteri)
\W Dizenin herhangi bir kelime karakteri İÇERMEDİĞİ bir eşleşme döndürür
\Z Belirtilen karakterler dizenin sonundaysa bir eşleşme döndürür

 

Kümeler

Küme, özel bir anlamı olan bir çift köşeli parantez [ ] içinde yer alan karakter kümesidir:

Aşağıda bu konuyla ilgili örnekleri inceleyebilirsiniz.

Örnekler:

Örnek: Dizede a, r veya n karakterleri olup olmadığını kontrol edin.

 

Örnek: Dizede a-n arası karakter olup olmadığını kontrol edin:

 

Örnek: Dizede a, r veya n dışında başka karakterler olup olmadığını kontrol edin:

Çıktı:

 

Örnek: Dizede 0, 1, 2 veya 3 rakamlarının olup olmadığını kontrol edin:

Çıktı:

 

Örnek: Dizede herhangi bir rakam olup olmadığını kontrol edin

Çıktı:

 

Örnek: Dizede 00 ile 59 arasında iki basamaklı sayı olup olmadığını kontrol edin.

Çıktı:

 

Örnek: Dizede a’dan z’ye küçük harf ve A’dan Z’ye büyük harf herhangi bir karakter olup olmadığını kontrol edin:

Çıktı:

 

Örnek: Dizede + karakter olup olmadığını kontrol edin.

Çıktı:

 

About the author

admin

Add Comment

Click here to post a comment

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.