Python Programming

Python’ın re.sub() ile Regex Wildcard’larını Öğrenme

Spread the love

Düzenli ifadeler (regex veya regexp), dizeler içindeki desen eşleştirme için güçlü araçlardır. Python’ın re modülü, joker karakterlerin önemli bir rol oynadığı regex işlemleri için sağlam işlevsellik sunar. Bu makale, çeşitli dizi manipülasyon görevleri için re.sub() fonksiyonuyla joker karakterlerin nasıl etkili bir şekilde kullanılacağını ele almaktadır.

İçerik Tablosu

Joker Karakterlerle Temel Regex Değiştirmeleri

re.sub() fonksiyonu, regex değiştirmeleri için temeldir. Sözdizimi re.sub(pattern, replacement, string, count=0, flags=0) şeklindedir. pattern düzenli bir ifadedir, replacement yerine geçen dizidir, string girdidir, count değiştirmeleri sınırlar ve flags eşleşme davranışını değiştirir. Joker karakterler, pattern‘ın esnekliğini önemli ölçüde artırır.

Bir dizideki tüm ünlüleri “X” ile değiştirelim:


import re

text = "Merhaba, Dünya!"
replaced_text = re.sub(r"[aeiou]", "X", text, flags=re.IGNORECASE)
print(f"Orijinal: {text}")
print(f"Değiştirilmiş: {replaced_text}")

[aeiou], herhangi bir ünlüyü eşleştiren (re.IGNORECASE nedeniyle büyük/küçük harfe duyarsız) bir joker karakter kümesidir.

Gelişmiş Joker Karakter Kullanımı ve Nicelleyiciler

re.sub() karmaşık joker karakterleri destekler. Bir veya daha fazla basamaktan oluşan dizileri “NUMARA” ile değiştirelim:


import re

text = "Telefon numaram 123-456-7890 ve posta kodum 90210."
replaced_text = re.sub(r"d+", "NUMARA", text)
print(f"Orijinal: {text}")
print(f"Değiştirilmiş: {replaced_text}")

d+ bir veya daha fazla basamağı eşleştirir (d bir basamağı eşleştirir, + bir veya daha fazla tekrarı belirtir).

İşte temel joker karakterleri özetleyen bir tablo:

Joker Karakter Açıklama
. Yeni satır hariç herhangi bir karakterle eşleşir.
* Önceki öğenin sıfır veya daha fazla oluşumuyla eşleşir.
+ Önceki öğenin bir veya daha fazla oluşumuyla eşleşir.
? Önceki öğenin sıfır veya bir oluşumuyla eşleşir.
[] Bir karakter kümesi tanımlar (örneğin, [abc]).
[^] Yinelemeli olmayan bir karakter kümesi tanımlar (örneğin, [^abc]).
() Yakalama grubu oluşturur.
Özel karakterlerden kaçınır (örneğin, . tam anlamıyla bir noktayla eşleşir).

Karmaşık Desenler İçin Joker Karakterleri Birleştirme

Joker karakterleri birleştirmek güçlü desenler oluşturur. “a” ile başlayan ve ardından herhangi bir karakter gelen kelimeleri değiştirelim:


import re

text = "Bir elma bir gün doktoru uzak tutar."
replaced_text = re.sub(r"aw*", "KEIME", text, flags=re.IGNORECASE)
print(f"Orijinal: {text}")
print(f"Değiştirilmiş: {replaced_text}")

aw*, “a”nın ardından sıfır veya daha fazla kelime karakteriyle (w) eşleşir.

Gerçek Dünya Örnekleri: E-posta ve Telefon Numarası Çıkarma

re.sub() karmaşık desenleri işlemekte mükemmeldir. E-posta adreslerini “E-POSTA” ile değiştirelim:


import re

text = "Bizimle [email protected] veya [email protected] adresinden iletişime geçin."
replaced_text = re.sub(r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}", "E-POSTA", text)
print(f"Orijinal: {text}")
print(f"Değiştirilmiş: {replaced_text}")

Bu regex yaygın bir e-posta formatıyla eşleşir.

Sonuç

re.sub() fonksiyonu, regex joker karakterleriyle birleştirildiğinde, Python’da dizi manipülasyonu için esnek ve verimli bir yöntem sunar. Bu tekniklere hakim olmak, metin işleme ve veri temizleme görevleri için değerlidir. İstenmeyen değiştirmelerden kaçınmak için dikkatli regex oluşturma çok önemlidir. Etkili dizi manipülasyonu için deneyim ve joker karakter nüanslarının anlaşılması çok önemlidir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir