Regex'e giriş: en çok işe yarayan kalıplar ve sık yapılan hatalar
Düzenli ifadeler (regex) ilk bakışta karışık görünür ama günlük işlerin çoğu birkaç temel parçayla çözülür. Bu rehberde en çok kullanılan yapı taşlarını ve sık düşülen tuzakları topladık.
Temel parçalar
| Kalıp | Anlamı |
|---|---|
. |
Satır sonu dışında herhangi bir karakter |
\d \w \s |
Rakam, kelime karakteri (harf/rakam/_), boşluk |
[abc] [^abc] |
Listedeki karakterlerden biri / biri hariç |
* + ? |
0 veya daha fazla, 1 veya daha fazla, 0 veya 1 |
{2,5} |
2 ile 5 arası tekrar |
^ $ |
Satırın (ya da metnin) başı ve sonu |
( ) (?: ) |
Yakalayan grup / yakalamayan grup |
\b |
Kelime sınırı |
İşe yarayan örnekler
^\d{5}$ 5 haneli posta kodu
^[\w.+-]+@[\w-]+\.[\w.]+$ kabaca e-posta biçimi
\b\d{1,3}(\.\d{1,3}){3}\b IPv4'e benzeyen ifade
^\s+|\s+$ baştaki ve sondaki boşluklar
(\d{4})-(\d{2})-(\d{2}) 2026-11-10 gibi tarihi parçalara ayırma
Python'da:
import re
m = re.search(r"(\d{4})-(\d{2})-(\d{2})", "Tarih: 2026-11-10")
yil, ay, gun = m.groups()
JavaScript'te:
const temiz = metin.replace(/^\s+|\s+$/g, "");
Sık yapılan hatalar
- Açgözlü eşleşme:
<.*>ifadesi<b>kalın</b>metninin tamamını yakalar. Tembel hali<.*?>ilk>işaretinde durur. - Kaçışı unutmak: Nokta, artı, soru işareti gibi karakterleri harfiyen aramak için
\.\+\?yazmalısın. - Ham string kullanmamak: Python'da
"\d"yeriner"\d"yaz. Yoksa ters bölü dizeye ait kaçış karakteri olarak yorumlanabilir. - Türkçe karakterler:
\wbazı dillerde ve modlarda yalnızca İngilizce harfleri kapsar. JavaScript'te Türkçe harfler içinubayrağıyla\p{L}kullan:/\p{L}+/u. - Her şeyi regex ile çözmeye çalışmak: HTML, JSON veya e-posta adresini tam doğrulamak için regex yerine bunun için yazılmış kütüphaneleri kullan.
Test etmek için
Kalıbı koda koymadan önce regex101 gibi bir test aracında örnek metinlerle dene. Bu araçlar her parçanın ne yaptığını tek tek açıklar ve hangi dil motorunu kullandığını seçmene izin verir.
Kendi kalıbında takıldığın bir yer varsa örnek metniyle birlikte cevap olarak yazabilirsin.