Düzenli ifadeler (regex) cep rehberi: korkmayı bırak, kullanmaya başla

Regex, metinde desen aramanın dilidir. Bir kere mantığını kavrayınca her yerde işine yarar: form doğrulama, log ayıklama, toplu değiştirme.

Temel taşlar

Desen Anlamı Örnek eşleşme
. herhangi bir karakter a, 7, @
\d rakam 0-9
\w harf/rakam/alt çizgi a, Z, 3, _
\s boşluk boşluk, tab
[abc] a, b veya c b
[^abc] a, b, c DIŞINDA x
a* 0 veya daha fazla a “”, a, aaa
a+ 1 veya daha fazla a a, aaa
a? 0 veya 1 a “”, a
a{2,4} 2 ila 4 a aa, aaaa
^ $ satır başı / sonu
(...) grup (yakala)
a|b a veya b

İşe yarar hazır desenler

E-posta (basit):   ^[\w.+-]+@[\w-]+\.[\w.-]+$
Türkiye cep (başında 0 opsiyonel):  ^0?5\d{9}$
Tarih YYYY-AA-GG:  ^\d{4}-\d{2}-\d{2}$
IPv4:              ^(\d{1,3}\.){3}\d{1,3}$
Boşlukları sadeleştir:  \s+   ->  tek boşlukla değiştir

Python’da kullanım

import re
metin = "Sipariş no: 10234, tutar: 149 TL"
sayilar = re.findall(r"\d+", metin)     # ['10234', '149']
m = re.search(r"tutar:\s*(\d+)", metin)
if m: print(m.group(1))                 # 149

İpuçları

  • regex101.com sitesinde desenini canlı test et; her parçanın ne yaptığını açıklıyor.
  • E-posta gibi karmaşık şeyleri %100 doğrulamaya çalışma; “yeterince iyi” desen + sunucuda gerçek kontrol daha sağlıklı.
  • Açgözlü (.*) yerine çoğu zaman cimri (.*?) istersin; biri her şeyi yutar, diğeri en azını alır.

Çözemediğiniz bir deseni buraya yazın, birlikte kuralım.