Online Regex Test ve Hata Ayıklama Aracı

Düzenli ifadeleri (Regular Expressions) gerçek zamanlı test edin. Yakalama gruplarını, bayrakları ve karmaşık desenleri görsel olarak analiz edin.

EN TR RU

Girdi

Pattern
Test metni
Replace (opsiyonel)

Çıktı

Metin İşlemenin "Kara Büyüsü": Regular Expressions

Yazılım dünyasında "Bir sorununuz var ve çözüm için Regex kullanmaya karar verdiniz. Artık iki sorununuz var." şakası meşhurdur. Düzenli ifadeler (Regex), metin madenciliğinin ve veri doğrulamanın en güçlü silahıdır, ancak okunması ve hatasız yazılması en zor dillerden biridir. Regex Tester aracımız, yazdığınız karmaşık desenleri anlık olarak test metni üzerinde çalıştırır. Eşleşen kısımları (Match), yakalanan alt grupları (Capturing Groups) ve isimlendirilmiş grupları (Named Groups) renkli olarak vurgulayarak, o kriptik `^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$` dizisinin aslında ne yaptığını anlamanızı sağlar.

Greedy (Açgözlü) vs. Lazy (Tembel) ve Performans

Regex yazarken yapılan en kritik hata, niceleyicilerin (Quantifiers) varsayılan davranışını yanlış anlamaktır. Varsayılan olarak Regex "Açgözlü"dür; yani `.*` ifadesi satırın sonuna kadar yutabildiği kadar karakter yutar. Bu durum, yanlış eşleşmelere ve "Catastrophic Backtracking" denilen performans sorunlarına yol açarak CPU'yu %100'e kilitleyebilir (ReDoS Saldırısı). Aracımızda `?` operatörünü kullanarak "Tembel" (Lazy) moduna geçişi test edebilir, motorun adım adım nasıl eşleşme aradığını simüle ederek performans darboğazlarını daha kodunuzu canlıya almadan tespit edebilirsiniz.

Lookahead, Lookbehind ve Bayraklar (Flags)

Basit eşleşmelerin ötesine geçmek isteyen profesyoneller için "Zero-width assertions" hayati önem taşır. "Bir rakamla biten ama başında harf olmayan" gibi mantıksal koşulları `(?=...)` (Positive Lookahead) veya `(?

FAQ
Varsayılan olarak Regex motoru ilk eşleşmeyi bulduktan sonra durur. `g` (Global) bayrağı eklendiğinde, motor metnin sonuna kadar taramaya devam eder ve tüm eşleşmeleri döndürür. "Tümünü Bul/Değiştir" işlemleri için zorunludur.
Genellikle hayır. HTML iç içe geçmiş (nested) ve düzensiz bir yapıdır. Regex düzenli diller (regular languages) içindir. Basit `href` yakalamaları için kullanılabilir ancak tam bir HTML ayrıştırma işlemi için Regex yetersiz kalır ve hatalı sonuçlar üretir.
Kötü yazılmış bir Regex (örneğin iç içe geçmiş niceleyiciler `(a+)+`), belirli bir girdi verildiğinde motorun sonsuz döngüye girmesine ve uygulamanın donmasına neden olabilir. Bu bir güvenlik açığıdır ve aracımızla desenlerinizi optimize etmelisiniz.
Parantez `(...)` içine alınan kısımlardır. Eşleşme gerçekleştiğinde, sadece tam eşleşmeyi değil, parantez içindeki alt verileri de (örneğin bir tarihteki gün, ay, yıl kısımlarını ayrı ayrı) elde etmenizi sağlar. `$1`, `$2` gibi referanslarla kullanılır.
Varsayılan olarak hayır, nokta karakteri yeni satır (`\n`) hariç her şeyi eşleştirir. Eğer yeni satırları da kapsamasını istiyorsanız `s` (dotAll) bayrağını kullanmalı veya `[\s\S]` gibi bir "hack" uygulamalısınız.