0Pricing
Learn AI with Python · Ders

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 first

re.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())   # 6

re.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"))    # None

search vs match

Temel fark şöyledir:

  • match — kalıp 0. dizin konumunda başlamalıdır
  • search — 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ız
  • re.MULTILINE — ^/$ her satırla eşleşir
  • re.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şir
  • re.findall — tüm eşleşmelerin listesi (gruplar çıktıyı değiştirir)
  • re.finditer — konumları içeren Match nesneleri
  • re.sub — geri başvurular veya bir işlev kullanarak eşleşmeleri değiştirme
  • Yeniden kullanım ve denetim için re.compile ve 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

  1. Düzenli İfade Örüntüleri ve Karakter Sınıfları
  2. re Modülü: search, match, findall, sub
  3. Yakalama Grupları ve Adlandırılmış Gruplar
  4. Regex ile Yapay Zeka için Metin Temizleme
← Learn AI with Python Sayfasına Dön