0Pricing
Python Academy · Ders

re.sub, Bayraklar ve Derlenmiş Kalıplar

Metni değiştirin, IGNORECASE gibi bayrakları kullanın ve yeniden kullanmak üzere kalıpları derleyin.

re.sub, Bayraklar ve Derlenmiş Kalıplar, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 4. 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, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Giriş

re.sub eşleşmeleri değiştirir. Bayraklar eşleştirme davranışını değiştirir. Derlenmiş örüntüler, tekrarlı kullanım için verimlidir.

Temel re.sub

re.sub(pattern, repl, string), tüm eşleşmeleri repl ile değiştirir. 4. bağımsız değişken olan count=, değişikliklerin sayısını sınırlar.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

Gruplarla re.sub

Yakalanan grupları değiştirmeye eklemek için değiştirme içinde \1, \2 veya \g<1> kullanın. Adlandırılmış gruplar için \g kullanın.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

İşlevle re.sub

Değiştirme, çağrılabilir bir değer olabilir: f(match) → değiştirme dizesi. Bu, karmaşık dönüşümlere olanak tanır.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

Örüntüyü büyük-küçük harfe duyarsız hâle getirir. re.I ile birlikte r'hello', 'HELLO', 'Hello' ve benzeri ifadelerle eşleşir.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

^ ve $ işaretlerinin dizenin tamamı yerine her LINE başlangıcıyla ve sonuyla eşleşmesini sağlar.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

. işaretinin yeni satırlarla da eşleşmesini sağlar. Bu seçenek olmadan . satır sınırlarında durur.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

Okunabilirlik için örüntüde açıklamalara ve boşluk karakterlerine izin verir. Boşluklar yok sayılır; gerçek bir boşluk için \ + boşluk kullanın.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

Bayrakları Birleştirme

Bayrakları | ile birleştirin: re.I | re.M. Alternatif olarak örüntünün başında satır içi bayrakları (?im) kullanın.
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

Performans için re.compile

Bir örüntüyü re.compile() ile bir kez derleyin. Derlenmiş nesne üzerindeki metotları çağırın: pat.search(), pat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

re.escape(string), bir dizedeki tüm özel regex karakterlerinin kaçışını yapar; böylece dize değişmez bir örüntü olarak kullanılabilir.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

Kısa Kontrol

Python regex'inde . işaretinin yeni satırlarla eşleşmesini hangi bayrak sağlar?

Özet

re.sub: dize, grup veya işlevle değiştirme. Bayraklar: re.I (büyük-küçük harf), re.M (çok satırlı ^/$), re.S (nokta \n ile eşleşir), re.X (ayrıntılı). Yeniden kullanım için derleyin.

Devam Edin

Harika iş çıkardınız! Sıradaki ders sizi bekliyor.

Sıkça Sorulan Sorular

“re.sub, Bayraklar ve Derlenmiş Kalıplar” dersi ücretsiz mi?

Evet — “re.sub, Bayraklar ve Derlenmiş Kalıplar” 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 Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“re.sub, Bayraklar ve Derlenmiş Kalıplar” dersinde ne öğreneceğim?

Metni değiştirin, IGNORECASE gibi bayrakları kullanın ve yeniden kullanmak üzere kalıpları derleyin. Python Academy 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.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, 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 4. dersidir.

“re.sub, Bayraklar ve Derlenmiş Kalıplar” 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 Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy 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 Temelleri
  2. re.match, re.search, re.findall Kullanımı
  3. Gruplar ve Adlandırılmış Yakalamalar
  4. re.sub, Bayraklar ve Derlenmiş Kalıplar
← Python Academy Sayfasına Dön