Bu Araç Nedir?
Düzenli ifade (regex), metinleri bulmak, doğrulamak ve ayıklamak için kullanılan kompakt bir desen dilidir: Bir e-posta deseni, form girdilerini doğrulayabilir; \d{4}-\d{2}-\d{2} tarihleri bulur ve yakalama grupları ise ihtiyacınız olan kısımları ayıklar. Hemen hemen her programlama dili ve düzenleyici, düzenli ifadeleri destekler.
Bu test aracı, Node.js ve tüm tarayıcılarda çalışan JavaScript düzenli ifade motorunu kullanır; bu sayede burada oluşturduğunuz kalıplar, JavaScript/TypeScript kodunuzda da aynı şekilde çalışır. Kalıpların çoğu, Python, Java ve Go dillerinde de herhangi bir değişiklik yapılmadan çalışır.
Neden Kullanmalısınız?
- Canlı geri bildirim: Deseni yazdıkça eşleşenler sarı renkle vurgulanır.
- Eşleşme başına gösterilen yakalama grupları — 1 $ ve 2 $’lık grupların tam olarak neleri içereceğini görün.
- Tam bayrak desteği: g (tüm eşleşmeler), i (büyük/küçük harf farkı göz ardı et), m (çok satırlı), s (nokta karakteri satır sonu ile eşleşir), u (Unicode).
- Desende sözdizimi hatası olduğunda hata mesajlarını sil.
- Ücretsiz ve gizli — desen ve metin hiçbir zaman tarayıcınızdan dışarı çıkmaz.
Nasıl Kullanılır
- Deseninizi iki / karakteri arasına yazın (çizgileri kendiniz kaçış karakteriyle belirtmenize gerek yoktur).
- İkinci / işaretinden sonraki küçük kutudaki bayrakları ayarlayın — varsayılan g seçeneği tüm eşleşmeleri bulur.
- Test metninizi aşağıya yapıştırın.
- Eşleşmeler anında vurgulanır; yakalama grupları ise bunların altında listelenir.
- Desen geçersizse, hata mesajında sorunun ne olduğu açıklanır.
Örnek
Giriş
Pattern: (\w+)@(\w+)\.com
Test string: Contact alice@example.com or bob@test.comÇıkış
✓ 2 matches
#1 groups: $1=alice $2=example
#2 groups: $1=bob $2=testParantezler, değiştirme işlemlerinde $1 ve $2 olarak başvurabileceğiniz yakalama grupları oluşturur.
Pratik ipuçları
- Bir e-posta girişini doğrulamak mı? ^[^\s@]+@[^\s@]+\.[^\s@]+$, geçerli ancak alışılmadık adresleri reddetmeden bariz yazım hatalarını yakalayan esnek bir kalıptır — RFC 5322 standardına tam uyum için tek satırlık bir kod değil, bir kütüphane gereklidir.
- Bir URL'den sorgu parametrelerini ayıklama: [?&]([^=]+)=([^&]*) g bayrağıyla, ardından & ve = işaretlerini elle ayırmak yerine her eşleşme için $1/$2 değerlerini okuma.
- .replace() içinde bir desen mi kullanacaksınız? Önce burada test edin — vurgulanan kısımlar, yakalama grupları da dahil olmak üzere, .replace() işlevinin tam olarak değiştireceği kısımlardır.
- Çok satırlı günlükleri ayrıştırma (her satırın başındaki zaman damgasıyla eşleştirme)? m bayrağını ekleyerek, ^ ve $ işaretlerinin tüm dize yerine her satırın başına sabitlenmesini sağlayın.
- Python veya PHP'den bir kalıp kopyaladınız ve burada uymuyor mu? (?P<name>...) biçimindeki adlandırılmış grupları kontrol edin — JavaScript'te (?<name>...) kullanılır, P yoktur — ya da JavaScript düzenli ifadelerinde bulunmayan sahiplik niceleyicilerini (++, *+) kontrol edin.
Genel amaçlı olmayan bir JavaScript düzenli ifade test aracı
Bu araç, JavaScript’in yerleşik RegExp motorunu çalıştırır — tarayıcı konsolunda veya Node.js’de str.match(pattern) ya da pattern.test(str) komutlarının arkasında yatan tam kod yolunu kullanır. Bu, PCRE (PHP'nin kullandığı ve birçok "evrensel" regex test aracının varsayılan olarak kullandığı) veya Python'un re modülüyle test etmekten farklıdır: JavaScript'te sahiplik niceleyicileri veya atomik gruplar yoktur ve adlandırılmış yakalama grupları, PCRE/Python'daki (?P<name>...) yerine (?<name>...) kullanır.
JS veya TypeScript içinde bir desen (form doğrulama, rota eşleştirici, günlük ayrıştırıcı gibi) kullanmaya hazırlanıyorsanız, bunu burada test etmek hiçbir uyumsuzluk sorunu yaratmaz: Bu sayfada vurgulanan kısımlar, tam olarak yeni RegExp(desen, bayraklar) işlevinin çalışma zamanında eşleştirdiği kısımlardır.
Bunun gerçek iş akışlarında nasıl bir yeri var?
Bir düzenli ifade testi nadiren tek başına yapılır. Genel akış şöyledir: Deseni burada doğrulayın, kodunuzda asıl .replace() işlemini çalıştırın, ardından önceki ve sonraki metinleri karşılaştırarak, değiştirme işleminin beklediğiniz sonucu verdiğinden ve başka bir etki yaratmadığından emin olun.
Yakalama gruplarıyla yapılandırılmış verilerin çıkarılması genellikle doğrudan JSON formatına aktarılır — çıkarılan çıktıyı biçimlendirerek, verilerin beklediğiniz şekilde ayrıştırıldığını kontrol edin.
Sıkça Sorulan Sorular
Bu test aracı hangi tür düzenli ifade kullanıyor?
JavaScript (ECMAScript), her tarayıcının ve Node.js’nin temelini oluşturan dildir. Temel sözdizimi platformlar arasında uyumludur, ancak bazı özellikler diller arasında farklılık gösterir — örneğin, geriye dönük arama desteği ve adlandırılmış grup sözdizimi Python ve Java’da farklılık gösterir.
Neden desenim sadece ilk eşleşmeyi buluyor?
g (global) bayrağı eksik. g bayrağı olmadan, düzenli ifade ilk eşleşmeden sonra durur. Bu araç varsayılan olarak g bayrağını kullanır — bu bayrağı kaldırmadığınızdan emin olun.
Neden . satır sonlarımla uyuşmuyor?
Varsayılan olarak, . karakteri satır sonları hariç tüm karakterlerle eşleşir. . karakterinin satır sonlarıyla da eşleşmesini sağlamak için s bayrağını (dotall) ekleyin ya da taşınabilir bir alternatif olarak [\s\S] ifadesini kullanın.
Yakalama grubu sonuçları ne anlama geliyor?
Deseninizdeki her bir parantez çifti, eşleştiği metni yakalar. $1 ilk grubu, $2 ikinci grubu ve benzeri — değiştirme işlemlerinde ve veri çıkarma kodunda bunlara başvurursunuz.
Neden düzenli ifade işlemim yavaşlıyor ya da donuyor?
Eşleşmeyen girdi üzerinde (a+)+ gibi iç içe geçmiş niceleyicilerin neden olduğu, muhtemelen felaketle sonuçlanacak bir geri izleme durumu. Belirsiz tekrarları önlemek için deseni yeniden yazın. Bu araç, yanıt verebilirliğini korumak için eşleşme sayısını 1000 ile sınırlamaktadır.