Python'da Düzenli İfadeler

Python'da Düzenli İfadeler

Python'da Düzenli İfadeler, metin işlemede kullanılan önemli bir araçtır Bu eğitimde, temel ve ileri düzeyde düzenli ifadelerin kullanımı öğrenilecektir Örnekler ve uygulamalarla konu pekiştirilecek, Python programlama becerileri artırılacaktır Hemen katılın!

Python'da Düzenli İfadeler

Python, hem yazılım geliştirme hem de veri bilimi gibi pek çok alanda kullanılan popüler bir programlama dilidir. Düzenli ifadeler de Python'da en sık kullanılan özellikler arasındadır. Düzenli ifadeler, belirli bir desene uygun olarak yazılan karakter öbekleridir ve metin verilerinin işlenmesinde önemli bir rol oynarlar.

Python'da düzenli ifadelerin kullanımı oldukça kolaydır. Düzenli ifadeler, Python'daki re modülüyle birlikte kullanılır. Düzenli ifadelerde temel kullanım örüntüleri, tekrarlamalar, alternatifler, özel karakterler, gruplar ve arama gibi özelliklerdir. Bu özelliklerle, belirli bir metinde aradığımız desenleri tanımlayabiliriz.

Temel Düzenli İfade Örüntüleri Kullanım Alanları
Tekrarlama Bir karakterin veya karakter grubunun kaç kez tekrar edeceğini belirlemek
Alternatifler Birden çok karakter grubundan birini seçmek
Özel Karakterler Özel karakterlerin tanımlanması, örneğin boşluk, nokta vb.
Gruplar Belirli bir karakter grubunu bir arada işlemek
Arama Belirli bir patern arayan metinleri işlemek

Düzenli ifadelerin en büyük avantajlarından biri, verimli bir şekilde metin verileri işleyebilmesidir. Güvenlik, performans, esneklik ve kolay okunabilirlik gibi özellikleriyle de programlama dünyasında öne çıkarlar. Düzenli ifadelerin uygulanması, e-posta adresi doğrulama ve telefon numarası doğrulama gibi birçok alanda kullanılabilir.


Düzenli İfadeler Nedir?

Düzenli ifadeler, belirli bir örüntüyü tanımlamak için kullanılan karakter dizileridir. Bu örüntüler, metin dosyalarında arama yapmak, metin işleme işlemleri gerçekleştirmek, filtreleme yapmak, veri analizi yapmak ve hatta veri bozulmalarını kontrol etmek için kullanılırlar. Düzenli ifadeler, gerçekten zorlu bir işlevsellik sağlarlar ve Python gibi programlama dillerinde kullanıcılara daha fazla işlevsellik sağlarlar.

Bu ifadeler, birçok programlama dili tarafından desteklenir ve aralarındaki farklar çok küçüktür. Düzenli ifade kullanımı, programlama dünyasında sıklıkla tercih edilir, çünkü metinlerin ve dosyaların işlenmesi için birçok farklı yöntem vardır. Bu işlemlerin çok sayıda tekrarını engeller ve işlemleri kolaylaştırır.


Düzenli İfadelerin Kullanımı

Düzenli ifadeler, bir dize içinde belirli bir örüntü aramak veya bir dizede belirli bir örüntüyü değiştirmek için kullanılan bir teknolojidir. Python'da düzenli ifadeler için iki adet modül bulunmaktadır:

  • re: bu modül, düzenli ifadelerin kullanımını mümkün kılar. re modülü, bir dizenin belirli bir desene göre eşleşmesini saptamak, bir dizeri belirli bir şekilde parçalamak, bir yerine diğerini değiştirmek vb. durumlarında kullanılır.
  • regex: bu modül de re gibi düzenli ifadeleri kullanmanıza olanak verir, ancak daha gelişmiş özelliklere sahiptir. Bu modül, Unicode desteği, pozitif veya negatif ondalık noktalar ve lookaround dahil olmak üzere re modülünden daha fazla özellik sağlar.

Python'da, düzenli ifadeleri kullanarak birçok şey yapılabilir. Örneğin, bir metnin içindeki tüm sayıları bulmak veya bir metindeki emoji karakterlerini değiştirmek gibi birçok işlem yapabilirsiniz. Bu nedenle, Python programcısı için düzenli ifadeler temel bir araçtır.


Temel Düzenli İfade Örüntüleri

Düzenli ifadelerin temel örüntüleri, programlamada sık sık kullanılan tekrarlama, alternatifler, özel karakterler, gruplar ve arama gibi özellikleri içerir. Tekrarlama örüntüleri, bir karakterin bir veya daha fazla kez tekrarlanması için kullanılır. + işareti, bir karakterin en az bir kez tekrarlanmasını gerektirirken, * işareti sıfır veya daha fazla sayıda tekrarlanmasına izin verir. ? işareti ise, bir karakterin belirtilen sayıda veya hiç tekrarlanmadığını belirtir. Alternatifler, birden fazla karakter veya kelime arasında seçim yapmak için kullanılır. | karakteri, alternatifler arasında ayırır. Özel karakterler, aranan örüntülerin bir kısmını temsil eder. Örneğin, ^ karakteri, aranan örüntünün bir kelimenin başında veya paragrafın başında olması gerektiğini belirtirken, $ karakteri örüntünün bir kelimenin sonunda veya paragrafın sonunda bulunması gerektiğini belirtir. Gruplar, örüntülerin bir grup içinde toplanmasına izin verir ve çeşitli özelliklerle birlikte kullanılarak daha güçlü düzenli ifadeler oluşturulabilir. Son olarak, arama özelliği, düzenli ifadelerin kullanıldığı metinlerde belirli patternleri aramak için kullanılır. Bu özellik, verilerin çeşitli dosyalardan çekilmesi veya filtrelenmesi gibi birçok uygulamada çok yararlıdır.


Tekrarlama Örüntüleri

Düzenli ifadelerin temel özelliklerinden biri, belirli bir örüntünün tekrar edilmesidir. Python, tekrarlama özellikleri için birkaç operatör sağlar. Bunlar, '+' , '*' ve '?' operatörleridir.

'+' operatörü, bir örneğin bir veya daha fazla tekrarını sağlar. Örneğin, 'a+' ifadesi 'a' karakterinin en az bir kere veya daha fazla tekrar edildiği örüntüleri eşleştirir.

'*' operatörü, bir örüntünün sıfır veya daha fazla tekrarını sağlar. Örneğin, 'a*b' ifadesi 'a' karakterlerinin sıfır veya daha fazla tekrar edildiği ve sonrasında bir 'b' karakteri ile eşleşen örüntüleri eşleştirir.

'?' operatörü, bir örüntünün sıfır veya bir kere tekrarını sağlar. Örneğin, 'colou?r' ifadesi, 'color' veya 'colour' kelimelerini eşleştirir.

Bu operatörler, genellikle metin düzenleme ve web tarama gibi uygulamalarda kullanılır. Tekrarlama özellikleri, düzenli ifadelerin kullanımını daha esnek hale getirir ve daha az tekrarlı kod yazmanızı sağlar.

+

Tekrarlama Örüntüleri

Düzenli ifadelerde en sık kullanılan özelliklerden biri de tekrarlama örüntüleridir. Tekrarlama örüntüleri, belirli bir karakter veya karakter dizisiyle eşleşen birden fazla karakteri yakalamak için kullanılır. Bu özellik sayesinde kodlamayı hızlandırmak ve tekrarlanan kodları azaltmak mümkündür.

Python'daki tekrarlama örüntüleri, '+', '*', '?' gibi operatörler kullanılarak tanımlanır. '+' işareti, önceki karakterin en az bir kez olması gerektiğini belirtirken, '*' işareti önceki karakterin sıfır veya daha fazla kez olması gerektiğini ifade eder. '?' işareti ise önceki karakterin sıfır veya bir kez olması gerektiğini belirtir.

Örneğin, "a+" ifadesi bir veya daha fazla "a" karakteriyle eşleşirken, "a*" ifadesi sıfır veya daha fazla "a" karakteriyle eşleşir. Benzer şekilde, "a?" ifadesi sıfır veya bir tane "a" karakteriyle eşleşir.

Ayrıca, tekrarlama operatörlerini kullanarak, özel karakterlerle birlikte kullanılabilen özel sözcükleri de tanımlayabilirsiniz. Örneğin, "ca+t" ifadesi "cat", "caat", "caaat" vb. gibi kelime öbekleriyle eşleşebilir.

Bu sayede, tekrarlama örüntüleri, programcılara kod yazmakta kolaylık sağlar ve işlevlerini yerine getirmelerine yardımcı olur.

,

Tekrarlama örüntüleri, düzenli ifadelerde en sık kullanılan örüntüler arasında yer alır. Bu örüntüler, belirli bir karakter veya karakter grubunun tekrarlanma sayısını belirler. Örneğin, + operatörü, bir karakterin en az bir kez tekrarlandığı anlamına gelir. * operatörü, bir karakterin hiç veya birçok kez tekrarlandığı anlamına gelir. ? operatörü ise bir karakterin hiç veya bir defa tekrarlandığı anlamına gelir.

Bu örüntülerin kullanımı, özellikle uzun metinlerde veya veri dosyalarında belirli özelliklere sahip verileri aramak için oldukça yararlıdır. Veri madenciliği uygulamaları gibi, büyük miktarlardaki verileri filtrelemek veya örüntüler oluşturmak için de kullanışlıdır.

*

Tekrarlama Örüntüleri

Düzenli ifadelerde tekrarlama örüntüleri ile belirli öğeleri birden fazla kez eşleştirebilirsiniz. Bu özellikler şunlardır; '+' işareti, '*' işareti ve '?' işareti. '+' işareti, kendisinden önceki öğenin bir veya daha fazla tekrarını belirtir. Örneğin, "a+" ifadesi, "a" karakterini en az bir kez eşleştirir. '*' işareti, kendisinden önceki öğenin sıfır veya daha fazla tekrarını belirtir. Örneğin, "ba*" ifadesi, "b" karakteri ardından sıfır veya daha fazla "a" karakterini eşleştirir. '?' işareti, kendisinden önceki öğenin sıfır veya bir kez tekrarını belirtir. Örneğin, "ba?" ifadesi "b" karakteri ardından sıfır veya bir "a" karakterini eşleştirir.

Bu operatörleri farklı şekillerde kullanabilirsiniz. Örneğin, "a{3,5}" ifadesi, "a" karakterinin en az 3 kez ve en fazla 5 kez tekrarlandığı durumları eşleştirir. "{m,n}" ifadesi ile, bir öğenin en az m kez ve en fazla n kez tekrarlandığı durumları eşleştirebilirsiniz. Bu operatörlerin kullanımı ve yoğunluğu tercih edilen düzenli ifadeye göre değişebilir.

Düzenli ifadelerde tekrarlama örüntülerini kullanarak, metnin içindeki belirli öğeleri bulmak ve manipüle etmek kolay hale gelir. Ayrıca, özel karakterlerin kullanımıyla birleştirilerek daha güçlü düzenli ifadeler oluşturabilirsiniz. Bu işlem, arama motoru optimizasyonu (SEO) çalışmalarında ve veri analizinde oldukça faydalıdır.

ve

Tekrarlama örüntüleri, ifade içindeki bir karakterin veya karakter dizisinin kaç defa tekrarlandığını belirlemek için kullanılır. Bu örüntülerinin sık kullanılan üç operatörü şunlardır: +, * ve ?

  • + operatörü: Sol taraftaki ifadenin bir veya daha fazla tekrarlanmasına izin verir. Örneğin, 'pyt+hon' ifadesi, t harfinin en az bir kez tekrarlanması gerektiğini belirtir ve 'pyton' gibi bir yazı yerine 'python' yazısını eşleştirir.
  • * operatörü: Sol taraftaki ifadenin 0 veya daha fazla tekrarlanmasına izin verir. Örneğin, 'AB*' ifadesi, 'A' harfiyle başlayan ve 0 veya daha fazla 'B' harfi içeren tüm yazıları eşleştirir. Buna ek olarak, 'B*' hiçbir karakterden oluşmayan bir yazıyı da eşleştirir.
  • ? operatörü: Sol taraftaki ifadenin 0 veya 1 kez tekrarlanmasına izin verir. Örneğin, '\d?' ifadesi, sayısal bir karakterin 0 veya 1 kez olabilmesini belirtir. Bu örüntü, '8' gibi tek karakterli bir sayısal yazıyı veya boş bir yazıyı eşleştirir.

Tekrarlama örüntüleri, düzenli ifadelerin en sık kullanılan özellikleri arasındadır ve birçok uygulamada büyük ölçüde kullanılmaktadır.

?

Düzenli ifade (regex ya da regular expression olarak da bilinir), bir metin parçasını tanımlamak veya aramak için kullanılan bir dizgi örneğidir. Python, bir dizi built-in modül sayesinde düzenli ifadeleri kullanarak metin arama ve manipülasyonunu kolaylaştırır. Düzenli ifadeler, belli bir kalıp veya desen içeren metinlerin tespit edilmesi için kullanılır.

Bunun için belirli bir kurallara ve sembollere uygun kullanımı gereklidir. Örneğin, bir e-posta adresini doğrulamak veya bir telefon numarasını tanımlamak için önemli olabilir. Düzenli ifadeler genellikle arama motorları, veri tabanları, metin editörleri ve diğer programlama dillerinde uygulama geliştirme çalışmalarında sıklıkla kullanılır.

Python'un düzenli ifade modülleri arasında re, regex ve fnmatch yer alır. Bu modüller, düzenli ifadelerin tanımlanması, sorgulanması ve kullanılması için çeşitli yöntemler sunar.

operatörleri ve kullanım alanları.

Düzenli ifadelerle, metinlerde tekrarlanan karakter veya karakter gruplarını tanımlamak mümkündür. Bu işlemde kullanılan operatörü, bir karakterin 1 ya da daha fazla kez tekrar edildiğini belirtmek için kullanılır. Örneğin, "aaaa" ya da "ccc" gibi karakterlerin yer aldığı bir metin için kullanılabilir.

Karakterlerin sadece bir kez ya da hiç olmadığı durumlar için * operatörü kullanılmaktadır. Örneğin, "a", "bb" ya da "c" gibi karakterlerin olmadığı durumlar veya bir kez yer aldığı durumlar için kullanılabilir.

Karakterlerin bir ya da hiç ya da sadece bir kez yer aldığı durumlar için ise ? operatörü kullanılmaktadır. Örneğin, "a" ya da "b" karakterlerinin bir kez ya da hiç yer almadığı durumlar için kullanılabilir.


Alternatifler

Düzenli ifadelerde alternatifler kullanarak birden fazla örüntü tanımlayabilirsiniz. Bunun için dikey çizgi | karakteri kullanılır. Örneğin, "koşu" veya "yürüyüş" kelimesini içeren cümleleri aramak istediğinizi varsayalım. Bu durumda, "(koşu|yürüyüş)" şeklinde bir düzenli ifade kullanabilirsiniz. Bu örnek, koşu ya da yürüyüş kelimesi içeren herhangi bir cümleyi eşleştirir.

Alternatiflerin yanı sıra, parantezler ( ) kullanarak birden fazla kelimeyi gruplayabilirsiniz. Örneğin, "burası Büyükçekmece ya da Avcılar" ifadesindeki iki ilçe adını kontrol etmek istediğimizi varsayalım. Bu durumda, "(Büyükçekmece|Avcılar)" şeklinde bir düzenli ifade kullanabilirsiniz.

Ayrıca, alternatifler yan yana kullanılarak birden fazla kelimeyi arayabilirsiniz. Örneğin, "(Bursa|İstanbul|Ankara) Büyükşehir Belediyesi" ifadesi, Bursa, İstanbul veya Ankara Büyükşehir Belediyeleri'ni eşleştirir.

Tüm bu örneklerde görülebileceği gibi, alternatifler düzenli ifadelerde oldukça yaygın bir kullanıma sahiptir. Ancak, çok fazla alternatif kullanmak, arama performansını etkileyebilir. Bu nedenle, alternatifleri mümkün olduğunca daraltmak doğru bir yaklaşım olacaktır.

|

Alternatifler

Düzenli ifadeler ile yapabileceğimiz bir diğer şey de alternatifler tanımlamaktır. Bu işlem için "|" karakteri kullanılır. Örneğin, "hava durumu" ve "hava tahmini" ifadelerini aynı anda aramak istediğimizi düşünelim. Bunun için "hava durumu|hava tahmini" şeklinde bir düzenli ifade kullanabiliriz. Bu şekilde arama sonuçlarında hem "hava durumu" hem de "hava tahmini" ifadeleri geçen sonuçlar gösterilecektir.

Alternatifler kullanarak belirli örüntülere sahip kelimeleri aramak da mümkündür. Örneğin, bir cümle içinde yer alan kelimelerin sadece büyük harfle başlayanlarını aramak istiyorsak, "^[A-Z]" şeklinde bir düzenli ifade kullanarak arama işlemini gerçekleştirebiliriz.

Alternatifler, düzenli ifadelerin güçlü bir özelliği olarak karşımıza çıkar ve arama işlemlerinde büyük bir kolaylık sağlar.

karakteri ile birden fazla örüntü tanımlama.

Python'da, '|' karakteri kullanarak birden fazla örüntü tanımlamak mümkündür. Bu özellikle, bir metinde farklı kelimelerin benzer özellikleri olduğunda ya da aynı anlamı taşıyan farklı ifadelerin bulunduğunda kullanışlıdır. Örneğin, "kedi" ve "kedi köpek" ifadeleri için bir desen oluşturabiliriz:

Örnek:

```pythonimport re metin = "Kedi köpek eşyalarımı yırttı."desen = re.compile(r"kedi|kedi köpek")sonuc = desen.search(metin)

print("Bulunan ifade: ", sonuc.group())```

Çıktı:

```Bulunan ifade: kedi köpek```

Yukarıdaki kodda, re modülü kullanarak, "kedi" veya "kedi köpek" ifadelerinden herhangi birini içeren bir desen oluşturuyoruz. Ardından, `search()` metodu ile metinde bu desene uyan ilk ifadeyi arıyoruz. Son olarak, `group()` metodu ile eşleşen ifadeyi yazdırıyoruz.

Alternatiflerin kullanımı, düzenli ifadelerle ilgili becerilerinizi geliştirdiğinde oldukça güçlü bir araç olabilir.