Python'da Normal İfadeler (Regex) Nasıl Kullanılır
Yerleşik re modülünü kullanarak Python düzenli ifadelerinde ustalaşın. Dize eşleştirmeyi, kalıp aramayı, tüm oluşumları bulmayı ve metin değiştirmeyi öğrenin.
Genel Bakış
Yaygın olarak regex olarak bilinen normal ifadeler, metin dizelerini belirli kalıplara göre eşleştirmek, aramak ve değiştirmek için kullanılan güçlü şablonlardır. Regex, e-posta doğrulama, telefon numarası doğrulama, web kazıma, günlük ayrıştırma ve metin ara ve değiştir görevleri için yaygın olarak kullanılır. Python, yerleşik 'yeniden' modülü aracılığıyla tam normal ifade yetenekleri sağlar.
'Re' modülü hedefinize bağlı olarak çeşitli temel işlevler sunar. 're.search(pattern, string)' işlevi bir dizeyi tarar ve modelin ilk oluşumu için bir eşleşme nesnesi döndürür. 're.match(pattern, string)' işlevi benzerdir ancak yalnızca dizenin en başından itibaren arama yapar. Bir metin bloğundaki bir modelin tüm örneklerini almak istiyorsanız, 're.findall(pattern, string)' bunları bir dize listesi olarak döndürür.
Normal ifade kalıpları rakamlar için "\d", alfasayısal karakterler için "\w", bir veya daha fazla oluşum için "+" ve sıfır veya daha fazlası için "*" gibi özel meta karakterleri kullanır. Python'da normal ifade yazarken, Python'un ters eğik çizgileri kaçış dizileri olarak değerlendirmesini önlemek için ham dize değişmezlerini ('r"\d+"' gibi 'r' önekiyle gelir) kullanmak standart bir uygulamadır.
Kod ve Yürütme Çıkışı
Bu komut dosyası, format yapılarının doğrulanmasını, sayısal belirteçlerin çıkarılmasını ve re modülünü kullanarak eşleşen kalıpların değiştirilmesini gösterir.
import re
# 1. Searching for a pattern in text
log_message = "ERROR: Connection timeout at 04:30:15 on port 8080"
pattern_port = r"port \d+"
match = re.search(pattern_port, log_message)
if match:
print("Found port pattern:", match.group())
# 2. Extracting all email addresses from a block of text
text = "Contact sales@pyrun.xyz or support@example.com for help."
pattern_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(pattern_email, text)
print("Extracted emails:", emails)
# 3. Replacing patterns using re.sub
date_string = "2026/05/25"
# Replace slashes with dashes
clean_date = re.sub(r"/", "-", date_string)
print("Replaced Date:", clean_date)Found port pattern: port 8080
Extracted emails: ['sales@pyrun.xyz', 'support@example.com']
Replaced Date: 2026-05-25Adım Adım Uygulama
- Yerleşik yeniden modülünü içe aktarın.
- Kaçış sırası sorunlarını önlemek için r"\d+" gibi ham dizeleri kullanarak normal ifade arama modellerini tanımlayın.
- İlk oluşumu bulmak için re.search() işlevini veya eşleşen tüm alt dizeleri toplamak için re.findall() işlevini kullanın.
- Metin içinde desen tabanlı değiştirmeler gerçekleştirmek için re.sub(pattern, replacement, string) öğesini kullanın.
Sıkça Sorulan Sorular
Normal ifade kalıpları için ham dizeler (r"...") kullanmanın faydası nedir?
Ham dizeler ters eğik çizgileri kaçış karakterleri yerine değişmez karakterler olarak ele alır. Örneğin, r"\n" ters eğik çizgiyi ve ardından gelen "n"yi, "\n" ise yeni satır karakterini temsil eder.
Bir normal ifade eşleşmesinin başarılı olup olmadığını nasıl kontrol ederim?
re.search() ve re.match() başarılı olursa bir eşleşme nesnesi döndürür, eşleşme bulunamazsa Yok olur. Sonucu bir koşullu ifade kullanarak kontrol etmelisiniz (örneğin, if match:).
İlgili Konular
Python dizelerindeki karakterleri veya alt dizeleri nasıl değiştireceğinizi öğrenin. replacement() yönteminde, sayım sınırlarında ve birden fazla karakter için çeviri kullanımında uzmanlaşın.
Python'da Bir Dize Nasıl BölülürPython'da split() yöntemini kullanarak bir dizeyi listeye nasıl böleceğinizi öğrenin. Boşluklara, virgüllere, yeni satırlara göre bölmeyi ve bölme sayısını sınırlamayı keşfedin.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python Döngüleri
Veriler üzerinde yineleme yapmak için Python döngülerini nasıl kullanacağınızı öğrenin. Etkileşimli örneklerle for döngüleri, while döngüleri, kesme, devam etme ve döngü en iyi uygulamaları konusunda uzmanlaşın.
Python String Yöntemleri Hile Sayfası
Python dize manipülasyonu için eksiksiz bir başvuru kılavuzu. Dize özelliklerini biçimlendirme, arama, bölme, değiştirme ve denetleme konusunda uzmanlaşın.
Python vs JavaScript: Hangi Programlama Dili En İyisidir?
Python ve JavaScript arasında kapsamlı bir karşılaştırma. Sözdizimi farklılıklarını, performansı, kullanım örneklerini (arka uç ve ön uç) ve kodlama örneklerini keşfedin.