Python Regex: re Modülüyle Desen Eşleştirme
Python'da Normal İfadelerde (Regex) ustalaşın. Yerleşik yeniden kitaplığı kullanarak dize verilerini aramayı, eşleştirmeyi, bölmeyi ve değiştirmeyi öğrenin.
Genel Bakış
Normal İfadeler (genellikle regex olarak kısaltılır), gelişmiş metin arama, dize eşleştirme ve manipülasyon için kullanılan bir mini dildir. Regex, basit dize değerlerini kontrol etmek yerine, büyük metin gövdelerinde arama yapmak için karmaşık desenler tanımlamanıza olanak tanır. Örneğin, bir belgedeki tüm e-posta adreslerini, telefon numaralarını veya URL'leri bulmanın normal dize yöntemleriyle ifade edilmesi basit, ancak normal dize yöntemleri kullanılarak yazılması inanılmaz derecede karmaşıktır.
Python, 're' modülü aracılığıyla düzenli ifadeler için yerleşik destek sağlar. Modül, ilk eşleşmeyi bulmak için 're.search()', eşleşen tüm alt dizeleri liste olarak almak için 're.findall()' ve eşleşme nesneleri üzerinde yineleme yapmak için 're.finditer()' gibi kritik işlevler içerir. Her eşleşme nesnesi, eşleşen alt dizenin tam başlangıç ve bitiş konumu dizini ve eşleşen metnin kendisi gibi meta veriler sağlar.
Normal ifade kalıpları özel meta karakterler kullanır: "\d" herhangi bir rakamla eşleşir, "\w" alfanümerik karakterlerle eşleşir, "+" bir veya daha fazla tekrarla eşleşir ve köşeli parantezler "[...]" karakter kümelerini tanımlar. Parantezlerle gruplamak `(...)` bir modelin belirli bölümlerini çıkarmanıza olanak tanır. Ek olarak, `re.sub()` bir kalıp aramanıza ve onu yeni bir dizeyle değiştirmenize olanak tanır. Regex'in zorlu bir öğrenme eğrisi olmasına rağmen, bunda uzmanlaşmak size metin işleme için inanılmaz derecede hızlı ve çok yönlü bir araç sağlar.
Kod ve Yürütme Çıkışı
Bir e-posta adresinin bileşenlerini doğrulamak ve çıkarmak için re modülünü kullanma.
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.Adım Adım Uygulama
- Biçim girişlerini doğrulama (e-postalar, telefonlar, şifreler)
- Durum kodları için sunucu erişim günlükleri ayrıştırılıyor
- Ham HTML ve işaretleme raporlarından bilgi alma
Sıkça Sorulan Sorular
Regex kalıplarında 'r' önekinin önemi nedir?
'Ham dize' anlamına gelir. Ham dizeler, ters eğik çizgileri (\) kaçış karakterleri yerine gerçek karakterler olarak ele alır ve normal ifade joker karakterleri ile sözdizimi çakışmalarını önler.
re.match ve re.search arasındaki fark nedir?
re.match yalnızca dizenin en başından başlayarak bir eşleşme olup olmadığını kontrol ederken, re.search bir eşleşme için dizenin tamamını tarar.
İlgili Konular
Python'da dize manipülasyonunda ustalaşın. Açık, yürütülebilir kod örnekleriyle dize yöntemlerini, dilimleme, birleştirme ve biçimlendirme tekniklerini öğrenin.
Python Dosya G/ÇPython'da dosyaları nasıl okuyacağınızı ve yazacağınızı öğrenin. Kaynak sızıntısı olmadan dosya işlemlerini güvenli bir şekilde yürütmek için open(), read(), write() ve bağlam yöneticilerinde uzmanlaşın.
Önerilen Python Kaynakları
İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.
Python'da Liste Nasıl Sıralanır
Python'da sort() yöntemini ve sorted() işlevini kullanarak bir listeyi nasıl sıralayacağınızı öğrenin. Özel anahtar sıralama ve ters sıralama örneklerini keşfedin.
Python Regex Desenleri (yeniden modül) Hile Sayfası
Python düzenli ifadeleri için başvuru kılavuzu. Eşleştirme, arama, tümünü bulma, alt ve temel normal ifade kalıplarını öğrenin.
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.