re Modülü: search, match, findall, sub
Performans için re.search(), re.match(), re.findall(), re.sub() ve re.compile().
re Modülü: search, match, findall, sub, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
re Modülü
Python, düzenli ifadeleri yerleşik re modülü aracılığıyla kullanıma sunar. Temel işlevler search, match, findall ve sub'dır.
Hangi işlevi ne zaman kullanacağınızı bilmek işin yarısıdır.
import re # always import it firstre.search — Her Yerde Arama
re.search(pattern, text), ilk eşleşmeyi bulmak için tüm dizeyi tarar ve bir eşleşme nesnesi döndürür; hiçbir şey eşleşmezse None döner.
import re
m = re.search("\d+", "order 42 shipped")
if m:
print(m.group()) # "42"
print(m.start()) # 6re.match — Başlangıca Sabitlenmiş
re.match yalnızca dizenin başlangıcında eşleşir. Kalıp 0 konumunda değilse, daha ileride bulunsa bile None döner.
import re
print(re.match("\d+", "42 items")) # matches "42"
print(re.match("\d+", "items 42")) # Nonesearch vs match
Temel fark şöyledir:
match— kalıp 0. dizin konumunda başlamalıdırsearch— kalıp herhangi bir yerde bulunabilir
Çoğu zaman search kullanmak istersiniz. match işlevini yalnızca özellikle bir önek kontrolü gerektiğinde kullanın.
re.findall — Tüm Eşleşmeleri Alma
re.findall, örtüşmeyen tüm eşleşmeleri dizelerden oluşan bir liste olarak döndürür; Match nesneleri döndürmez. Çıkarma işlemleri için idealdir.
import re
emails = re.findall("\w+@\w+\.\w+", "a@x.com and b@y.org")
print(emails) # ["a@x.com", "b@y.org"]findall ile Gruplar
Kalıbınızda yakalama grupları varsa findall, tüm eşleşme yerine yakalanan bölümleri döndürür; bu durum sıkça şaşırtıcı olabilir.
Burada her demet alan kodunu ve geri kalan kısmı içerir.
import re
print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]re.finditer — Eşleşme Nesneleri
Her eşleşmenin konumlarına veya gruplarına ihtiyaç duyduğunuzda re.finditer kullanın. Bu işlev, tembel biçimde üzerinde yineleme yapabileceğiniz Match nesneleri üretir.
import re
for m in re.finditer("\d+", "a1 b22 c333"):
print(m.group(), "at", m.start())re.sub — Arama ve Değiştirme
re.sub(pattern, replacement, text), her eşleşmeyi değiştirme dizesiyle değiştirir ve yeni bir dize döndürür.
Metin temizlemenin temel araçlarındandır: maskeleme, normalleştirme ve ayıklama için kullanılır.
import re
clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean) # "Room # and #"sub ile Geri Başvurular ve İşlevler
Değiştirme işlemi, yakalanan gruplara \1 ile başvurabilir veya dinamik mantık için bir işlev kullanabilir.
import re
# Swap "first last" -> "last, first"
print(re.sub("(\w+) (\w+)", "\\2, \\1", "Ada Lovelace"))
# Function replacement: double each number
print(re.sub("\d+", lambda m: str(int(m.group()) * 2), "a1 b2"))re.compile — Kalıpları Yeniden Kullanma
Bir kalıbı birçok kez kullandığınızda (örneğin bir döngüde), re.compile kalıbı bir kez derleyerek yeniden kullanılabilir bir kalıp nesnesi oluşturur. Bu yöntem daha hızlıdır ve kodun okunmasını kolaylaştırır.
import re
num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
print(num.findall(line))Yararlı Bayraklar
Bayraklar eşleştirme davranışını değiştirir:
re.IGNORECASE— büyük/küçük harfe duyarsızre.MULTILINE—^/$her satırla eşleşirre.DOTALL—.satır sonlarıyla da eşleşir
import re
print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]Hızlı Kontrol: search ve findall Karşılaştırması
Bir belgede herhangi bir yerde geçen tüm telefon numaralarının listesini almanız gerekiyor.
Özet: re Modülü
Artık temel düzenli ifade işlevlerini biliyorsunuz:
re.search— herhangi bir yerdeki ilk eşleşme (eşleşme nesnesi)re.match— yalnızca başlangıçta eşleşirre.findall— tüm eşleşmelerin listesi (gruplar çıktıyı değiştirir)re.finditer— konumları içeren Match nesnelerire.sub— geri başvurular veya bir işlev kullanarak eşleşmeleri değiştirme- Yeniden kullanım ve denetim için
re.compileve bayraklar
Sıradaki konu: yakalama grupları ve adlandırılmış gruplar.
Sıkça Sorulan Sorular
“re Modülü: search, match, findall, sub” dersi ücretsiz mi?
Evet — “re Modülü: search, match, findall, sub” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“re Modülü: search, match, findall, sub” dersinde ne öğreneceğim?
Performans için re.search(), re.match(), re.findall(), re.sub() ve re.compile(). Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“re Modülü: search, match, findall, sub” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Düzenli İfade Örüntüleri ve Karakter Sınıfları
- re Modülü: search, match, findall, sub
- Yakalama Grupları ve Adlandırılmış Gruplar
- Regex ile Yapay Zeka için Metin Temizleme