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
- Gelişmiş Joker Karakter Kullanımı ve Nicelleyiciler
- Karmaşık Desenler İçin Joker Karakterleri Birleştirme
- Gerçek Dünya Örnekleri: E-posta ve Telefon Numarası Çıkarma
- Sonuç
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.