Regex tester
Regex tester ile deseni girin, bayrakları seçin ve test metnini yapıştırın: her eşleşme indeksiyle, numaralı ve adlandırılmış yakalama gruplarının içeriği ve desenin her parçasının Türkçe açıklaması görünür. Eşleştirmeyi tarayıcınızın JavaScript motoru (ECMAScript) yapar.
Nasıl hesaplanır?
Bu regex tester, ECMA-262 standardında tanımlanan ve tarayıcınızda uygulanan JavaScript türü düzenli ifadeleri kullanır. Burada çalışan bir desen String.prototype.match, matchAll, replace ve RegExp.prototype.test içinde de aynen çalışır – Chrome, Firefox, Safari ve Node.js’te.
Sonuç nasıl okunur?
- Eşleşmeler: her eşleşme indeksi (sıfırdan başlayan karakter konumu, JavaScript’teki gibi UTF-16 birimleriyle – bir emoji 2 sayılır) ve uzunluğuyla. Satır sonları ↵, sekmeler ⇥ olarak gösterilir.
- Eşleşme başına gruplar: her parantez çiftinin yakaladığı metin – numaralı gruplar
( )ve adlandırılmış gruplar(?<ad> ). „Katılmadı”, grubun seçilmeyen bir alternatifte olduğu anlamına gelir.dbayrağıyla her grubun konumu da gösterilir. - Desenin açıklaması: her öğe Türkçe açıklanır; girintili satırlar (›) bir grubun içindedir.
Bayraklar
g yalnızca ilkini değil tüm eşleşmeleri bulur, i büyük/küçük harfi yok sayar, m ile ^ ve $ her satırda çalışır, s noktanın satır sonlarını da eşlemesini sağlar. u, emojileri ve Temel Çok Dilli Düzlem (BMP) dışındaki diğer karakterleri tek karakter sayar ve \p{L} (ç, ğ, ş dahil herhangi bir harf) gibi Unicode özelliklerini açar. v, [\p{L}--[a-z]] gibi küme işlemleri sunan yeni u sürümüdür; u ve v birlikte kullanılamaz. y („sticky”) yalnızca aralıksız art arda gelen eşleşmeleri bulur.
Sonsuz döngü ve donmaya karşı koruma
a* veya \b gibi desenler boş eşleşmeler üretebilir. JavaScript’in kendisi gibi test aracı da bu durumda bir karakter (u/v ile bir tam kod noktası) ilerler; böylece sonsuz döngü oluşmaz. En fazla 1.000 eşleşme aranır.
Daha büyük tehlike felaket geri izlemedir (ReDoS): (a+)+$ gibi iç içe niceleyiciler, eşleşmeyen bir metinde üstel sayıda kombinasyon dener – 30 karakter motoru dakikalarca meşgul edebilir. Bu yüzden arama ayrı bir arka plan iş parçacığında çalışır ve 2 saniye sonra durdurulur; sayfa yanıt vermeye devam eder. Kendi kodunuzda da, özellikle kullanıcı girdisinde, bu tür desenlerden kaçının.
Diğer regex türlerinden farklar
PCRE (PHP), Python, Java ve .NET ayrıntılarda farklıdır: JavaScript’te sahiplenici niceleyiciler (a++), atomik gruplar ve \A ile \Z çapaları yoktur; \w yalnızca A–Z, a–z, 0–9 ve alt çizgiyi kapsar – Türkçe harfler için u bayrağıyla \p{L} kullanın.
Test metniniz gönderilmez, saklanmaz ve linke yazılmaz – linke yalnızca desen ve bayraklar girer.
Sıkça sorulan sorular
Bir düzenli ifadeyi nasıl test ederim?
Deseni eğik çizgi olmadan üstteki alana yazın, gereken bayrakları işaretleyin ve metninizi yapıştırın. Tüm eşleşmeler hemen metinde vurgulanır ve indeksleriyle listelenir; altında her grubun ne yakaladığını görürsünüz.
\w neden Türkçe harfleri eşlemiyor?
JavaScript’te \w yalnızca A–Z, a–z, 0–9 ve _ anlamına gelir. Her dildeki harfler için u bayrağıyla \p{L} kullanın, örn. „çiçekçi” gibi bir kelime için [\p{L}\d_]+.
Açgözlü ve tembel niceleyici arasındaki fark nedir?
Açgözlü niceleyiciler (*, +, {2,}) olabildiğince çok metin alır, sonuna soru işareti eklenmiş tembel olanlar (*?, +?) olabildiğince az. „<b>x</b>” üzerinde <.+> tüm metni, <.+?> ise yalnızca „<b>” kısmını eşler.
Bir yakalama grubuna nasıl ad verilir?
(?<ad>…) kullanın. Kodda match.groups.ad ile, değiştirme metninde $<ad> ile, desenin içinde ise \k<ad> geri başvurusuyla okursunuz.
Aramam neden durduruldu?
2 saniyeden uzun sürdü – genellikle (\w+)* gibi iç içe niceleyicilerdeki felaket geri izleme yüzünden. Deseni sadeleştirin: niceleyicileri iç içe koymayın, alternatifleri net yapın ve ^ ile $ çapalarını ekleyin.
Sonuç PHP veya Python için de geçerli mi?
Basit desenlerde genellikle evet, ancak garanti yalnızca JavaScript içindir. PHP (PCRE) ve Python, sahiplenici niceleyiciler veya \A gibi ek sözdizimini destekler; Python adlandırılmış grupları geleneksel olarak (?P<ad>…) şeklinde yazar.
Kaynaklar ve yasal dayanak
- ECMA-262 § 22.2: ECMA-262 – ECMAScript Language Specification, RegExp (Regular Expression) Objects
- MDN Web Docs – Regular expressions (Guide)
- MDN Web Docs – RegExp.prototype.flags
- MDN Web Docs – String.prototype.matchAll() (empty matches, lastIndex)
- OWASP – Regular expression Denial of Service (ReDoS)
Güncelleme:
Benzer araçlar
- JSON formatter, doğrulayıcı ve küçültücüJSON formatter: JSON’u RFC 8259’a göre doğrulayın, hatayı satır, sütun ve açıklamasıyla görün. Biçimlendirin, küçültün, anahtarları sıralayın – tarayıcıda.
- Online XML ve CSV doğrulamaXML doğrulama: XML’in iyi biçimli olup olmadığını ve CSV’nin RFC 4180’e uygunluğunu kontrol edin – satır ve sütunlu hatalar, ayırıcı tespiti, tablo önizlemesi.
- Base64 encode ve decodeBase64 ve Base64url’i doğru UTF-8 ile kodlayın ve çözün; URL encode/decode (yüzde kodlama) dahil. Anlaşılır hata mesajları, tamamen tarayıcınızda çalışır.
- Hash Hesaplama: SHA-256, SHA-512, SHA-1, MD5Metin veya dosya için SHA-256, SHA-384, SHA-512, SHA-1 ve MD5 hash hesaplama, checksum karşılaştırma – tarayıcınızda, yükleme yok, ücretsiz.
- E-posta adresi doğrulamaE-posta adreslerinin yazımını RFC 5321/5322’ye göre kontrol edin: uzunluk, alan adı, Türkçe karakterli alan adları. Toplu liste de olur, veri gönderilmez.
- AB KDV numarası doğrulama (format ve kontrol hanesi)AB KDV numarası doğrulama: 27 AB ülkesi ve Kuzey İrlanda (XI) için KDV kimlik numarasının formatını ve kontrol hanesini kontrol edin. VIES bağlantısıyla.