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 re23metin = """4Bize iletişim kurun:6Telefon: 0532-123-4567 ya da 0541-987-65437"""89# E-posta adreslerini bul10emaillar = re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', metin)11print("E-postalar:", emaillar)1213# Telefon numaralarını bul14telefon = re.findall(r'0\d{3}-\d{3}-\d{4}', metin)15print("Telefonlar:", telefon)1617# Belirli bir kelimeyi değiştir18yeni_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 re23html = "<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.
0 yorum