;

Regex Test Aracı

Düzenli ifadelerinizi canlı olarak test edin. Eşleşmeleri vurgular, gruplandırmaları gösterir. Tarayıcıda anında çalışır, kayıt gerekmez, ücretsizdir.

Regex Tester

Canlı
/ /

Eşleşmeler (0)

Vurgulu Önizleme

Regex Nedir? Neden Öğrenmeliyim?

Regular Expression (Regex), metin desenleri eşleştirmek için kullanılan minik bir "dil"dir. 1950'lerde matematikçi Stephen Cole Kleene tarafından geliştirilmiş, bugün hemen hemen tüm programlama dillerinde, metin editörlerinde (VS Code, Sublime) ve komut satırı araçlarında (grep, sed) standart araçtır.

Bir geliştirici, sysadmin veya içerik yöneticisi için regex bilgisi iş yükünüzü 10 kat azaltır: bin satırlık dokümanda email adreslerini bulmak, URL'leri çıkarmak, telefon formatını doğrulamak — hepsi saniyeler sürer.

Temel Regex Sembolleri

Karakter Sınıfları

  • . — Tek bir karakter (newline hariç)
  • \d — Bir rakam (0-9)
  • \D — Rakam olmayan
  • \w — Kelime karakteri (a-z, A-Z, 0-9, _)
  • \W — Kelime karakteri olmayan
  • \s — Boşluk (space, tab, newline)
  • \S — Boşluk olmayan
  • [abc] — a, b veya c'den biri
  • [^abc] — a, b veya c OLMAYAN
  • [a-z] — a'dan z'ye herhangi bir harf

Tekrarlayıcılar (Quantifiers)

  • * — 0 veya daha fazla
  • + — 1 veya daha fazla
  • ? — 0 veya 1 (opsiyonel)
  • {3} — Tam 3 kere
  • {3,5} — 3 ile 5 arası
  • {3,} — 3 veya daha fazla

Bağlayıcılar (Anchors)

  • ^ — Satır başı
  • $ — Satır sonu
  • \b — Kelime sınırı
  • \B — Kelime sınırı olmayan

Gruplama ve OR

  • (abc) — Yakalama grubu (capture)
  • (?:abc) — Yakalamayan grup
  • a|b — a VEYA b
  • (yes|no) — yes veya no

Pratik Regex Örnekleri

E-posta Doğrulama (Basit)

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

Eşleşir: user@example.com, ali.veli+test@site.co.uk

Türkiye Cep Telefonu

^(\+90|0)?5\d{9}$

Eşleşir: 05551234567, +905551234567, 5551234567

URL Yakalama

https?:\/\/[^\s]+

Eşleşir: https://example.com, http://test.tr/sayfa?q=1

IP Adresi (IPv4)

\b(?:\d{1,3}\.){3}\d{1,3}\b

Eşleşir: 192.168.1.1, 8.8.8.8

Türkçe Posta Kodu (5 rakam)

^\d{5}$

TC Kimlik Numarası (11 rakam, başı 0 değil)

^[1-9]\d{10}$

Tarih (DD/MM/YYYY)

^(0[1-9]|[12]\d|3[01])\/(0[1-9]|1[0-2])\/\d{4}$

Regex Flag'leri

  • g (global): Tüm eşleşmeleri bul (yoksa sadece ilki)
  • i (insensitive): Büyük/küçük harf farketmez
  • m (multiline): ^ ve $ her satır için çalışır
  • s (dotall): . newline'ı da eşleştirir
  • u (unicode): Türkçe karakterler doğru çalışır

Yaygın Hatalar

  • Greedy vs Lazy: .* mümkün olanın en uzununu yakalar. Kısa eşleşme için .*? kullanın
  • Türkçe karakter: \w ASCII'dir, Türkçe için [\wçğıöşüÇĞİÖŞÜ] veya u flag
  • Backslash escape: Özel karakterleri (. * + ?) eşleştirmek için \ ile escape edin
  • Catastrophic backtracking: (a+)+ gibi yapılar regex motoru kilitler
  • HTML'i regex ile parse etmeye çalışmak: İmkansız, DOM parser kullanın

Sıkça Sorulan Sorular

JavaScript regex ile PHP/Python regex aynı mı?

Büyük çoğunluğu aynı (PCRE - Perl Compatible Regular Expressions standardı). Küçük farklar var: JavaScript lookbehind (?<=...) konusunda biraz geri kalır, Python re modülünde \A ve \Z gibi ekstra anchor'lar var. Temel sözdizimi her yerde aynı çalışır, bu nedenle bir kere öğrenmek yeter.

Regex'te Türkçe karakterler nasıl eşleştirilir?

Klasik \w sadece ASCII karakterleri (a-z, A-Z) yakalar. Türkçe için iki yöntem: (1) Explicit liste: [\wçğıöşüÇĞİÖŞÜ]+ (2) Unicode flag: /[\w\p{L}]+/u — bu tüm dillerin harflerini yakalar. Modern uygulamalarda u flag'i tercih edilir, daha temizdir.

Greedy ile lazy match arasında ne fark var?

Greedy (.*, .+) regex motoruna "en uzun eşleşmeyi al" der. Lazy (.*?, .+?) "en kısa eşleşmeyi al" der. Örnek: "ab cd ef" metninde a.*f greedy "ab cd ef" tümünü alır. a.*?f lazy "ab cd ef" yine aynı ama farklı kullanım örneklerinde çok büyük fark çıkar. HTML tag çıkarmada lazy genelde tercih edilir.

Regex performansını nasıl optimize ederim?

Birkaç pratik: (1) Mümkün olan en spesifik karakter sınıfı kullanın (.* yerine [a-z]+) (2) Anchors ekleyin (^ ve $) — regex motoru hızlıca elemine eder (3) Lazy quantifier'ları gerektiğinde kullanın, fazla genel yapmayın (4) (?:) yakalamayan grupla performans artar (5) Catastrophic backtracking yaratacak (a+)+ gibi yapılardan kaçının.

Regex'i nerede öğrenmeliyim?

Aracımız anlık test için idealdir, deneyerek öğrenirsiniz. Daha kapsamlı kaynaklar: regex101.com (canlı debug ile), regexr.com (görsel), MDN web docs Regular Expressions kılavuzu, "Mastering Regular Expressions" kitabı (klasik referans). Çoğu geliştirici regex'i 5-10 saatlik egzersiz ile orta seviyede öğrenir.

İlgili Araçlar

İlgili Araçlar

;