Python'da Regex ile Metin Arama: Adım Adım Rehber

Düzenli ifadeler (regex), metinlerde belirli desenleri aramak ve bulmak için kullanılan güçlü bir araçtır. Python'da `re` modülü ile regex işlemleri yaparsın.

Regex, belirli kuralları takip eden metin desenleridir. Örneğin tüm e-posta adreslerini bulmak, telefon numaralarını çıkarmak veya belirli biçimdeki kelimeleri yakalamak için kullanılır. Python'da `re` modülü bunu sağlar.

`re.search()` - Metinde ilk eşleşmeyi bulur.
`re.findall()` - Tüm eşleşmeleri liste olarak döndürür.
`re.sub()` - Eşleşen metni değiştirir.
`re.match()` - Metnin başından itibaren kontrol eder.

Aşağıdaki kod, bir metinde tüm e-posta adreslerini ve telefon numaralarını bulur:

1import re
2
3metin = """
4Bize iletişim kurun:
5E-posta: info@sirket.com veya destek@sirket.com
6Telefon: 0532-123-4567 ya da 0541-987-6543
7"""
8
9# E-posta adreslerini bul
10emaillar = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', metin)
11print("E-postalar:", emaillar)
12
13# Telefon numaralarını bul
14telefon = re.findall(r'0\d{3}-\d{3}-\d{4}', metin)
15print("Telefonlar:", telefon)
16
17# Belirli bir kelimeyi değiştir
18yeni_metin = re.sub(r'sirket', 'şirket', metin)
19print("\nDüzeltilmiş metin:")
20print(yeni_metin)

Çıktı:
```
E-postalar: ['info@sirket.com', 'destek@sirket.com']
Telefonlar: ['0532-123-4567', '0541-987-6543']

Düzeltilmiş metin:
Bize iletişim kurun:
E-posta: info@şirket.com veya destek@şirket.com
Telefon: 0532-123-4567 ya da 0541-987-6543
```

`[a-zA-Z0-9._%+-]+` - Bir veya daha fazla harf, rakam, nokta, alt çizgi, yüzde, artı veya eksi.
`@` - Tam olarak @ işareti.
`\d{3}` - Tam olarak 3 rakam.
`\d{4}` - Tam olarak 4 rakam.
`-` - Tire işareti.
`0` - Sıfır rakamı.

Regex başında `r` harfi raw string anlamına gelir; ters eğik çizgileri doğru yorumlar.

Satırlar arasında HTML etiketlerini kaldırmak:

1import re
2
3html = "<p>Merhaba <b>Dünya</b>!</p>"
4temiz = re.sub(r'<[^>]+>', '', html)
5print(temiz)

Çıktı:
```
Merhaba Dünya!
```

Regex öğrenmek başlarda karışık görünse de, sık kullandıkça alışırsın. Başla basit desenlerle, sonra karmaşık olanları dene.

konu hakkında tepkinizi verebilirsiniz