Ücretsiz Dönüştürücü

Normal ifade Testçi

Normal ifadeleri tarayıcınızda anında test edin ve hatalarını ayıklayın. Eşleşmeleri vurgulayın, yakalama gruplarını görüntüleyin ve değiştirme modunu kullanın - ücretsiz ve özel.

//g
Bayraklar:

Bu araç hakkında

Düzenli ifadeler, metindeki kalıpları eşleştirmek için alana özgü bir dildir. 1968'den bu yana bilişimin bir parçası olmuşlardır ve artık her modern programlama dilinde, metin düzenleyicide ve komut satırı arama aracında yerleşik olarak bulunmaktadırlar. Sözdizimi kısa ve özdür ancak hataya açıktır: küçük değişiklikler çok farklı eşleşme davranışlarına neden olur ve karmaşık ifadeler hızla okunamaz hale gelir. Siz modeli düzenlerken eşleşmeleri gerçek zamanlı olarak gösteren bir test cihazı, normal ifadeyi geliştirmenin ve doğrulamanın en etkili yoludur.

Bu test cihazı, tarayıcınızda JavaScript regex motorunu (uygulamanızın bir tarayıcıda çalışıyorsa kullandığı motorun aynısını) kullanarak çalışır. Desenler ve test metni tepkisel olarak güncellenir: Her ikisinde de yapılan her değişiklik, eşleşmeyi yeniden çalıştırır. Eşleşme grupları vurgulanır, yakalanan gruplar listelenir ve işaretler (büyük/küçük harfe duyarlı olmayan, çok satırlı, genel) test için kullanıma sunulur.

Regex sözdizimi motorlar arasında büyük farklılıklar gösterir. JavaScript, ECMAScript spesifikasyonunu takip eder; Python, PCRE (PHP ve diğerleri tarafından kullanılır), Java ve Go'nun her birinin örtüşen ancak aynı olmayan özelliklere sahip kendi lehçeleri vardır. Burada geliştirilen desenler ECMAScript sözdizimini kullanır; Motorlar arası taşınabilirlik, her hedefin belgelerinin kontrol edilmesini gerektirir.

Neden Regex Test Aracı Kullanılmalı?

Regex hatalarının dağıtımdan sonra hata ayıklaması oldukça zordur. Makul görünen bir model, amaçlanandan daha fazla veya daha az eşleşebilir, uç durumlarda başarısız olabilir veya belirli girdilerde felaketle sonuçlanabilecek bir geri izlemeye neden olabilir. Desenleri temsili girdilere göre etkileşimli olarak test etmek, sorunları kod incelemesi ve üretiminden önce yakalar.

Desenler ayrıca dokümantasyondan da yararlanır. Eşleşmesi gereken girdinin ve eşleşmemesi gereken girdinin yanında bir normal ifadenin gösterilmesi, amacı açıkça ortaya koyar. Gelecekteki bakımcılar (altı ay sonra siz de dahil olmak üzere), belgelenmiş test senaryolarını akıllı tek satırlık yazılardan daha çok takdir edeceklerdir.

Nasıl kullanılır

Bir model yazın, test girişi yazın, canlı olarak vurgulanan maçları görün.

  1. Deseninizi girin: Desen alanına normal ifade desenini yazın. Hem değişmez regex (/desen/bayraklar) hem de yalnızca desen formları çalışır; bayraklar, bayrak girişi yoluyla ayarlanabilir.
  2. Test girişi ekle: Desenin eşleşmesi gereken örnek metni (ve ideal olarak eşleşmemesi gereken metni de) yapıştırın. Test cihazı, modeli girdiye karşı çalıştırır ve eşleşmeleri vurgular.
  3. Bayrakları ayarla: Ortak bayraklar: g (genel, tüm eşleşmeleri bul), i (büyük/küçük harfe duyarlı değildir), m (çok satırlı, ^ ve $ eşleşme satırı başlangıçları/bitişleri), s (noktalı, . yeni satırlarla eşleşir), u (Unicode).
  4. Sonuçları inceleyin: Her eşleşme girişte vurgulanır. Yakalama grupları, grup indeksi ve değeriyle birlikte bir listede görünür. Test cihazı aynı zamanda eşleşme sayısını ve kalıptaki derleme hatalarını da gösterir.

Yaygın Kullanım Durumları

Teknik Detaylar

JavaScript regex'i ECMAScript spesifikasyonunu takip eder. Başlıca özellikler: karakter sınıfları ([abc], [^abc]), niceleyiciler (*, +, ?, {n,m}), değişim (|), gruplama ((...)), yakalayan ve yakalamayan gruplar, ileriye dönük ve geriye dönük (modern motorlar), geri referanslar, adlandırılmış gruplar, Unicode özellik kaçışları (u bayrağıyla) ve standart kaçış dizileri kümesi.

PCRE ve Python'dan önemli farklar: Geriye dönük destek JavaScript'te (2018+) yenidir; adlandırılmış gruplar (?<name>...) sözdizimini kullanır; bazı Unicode kaçışları u bayrağının doğru çalışmasını gerektirir. Diller arası kullanıma yönelik modeller, her hedefin belgelerine göre kontrol edilmelidir.

Performans: Geri izlemeye dayalı normal ifade motorları (çoğu JavaScript dahil) belirli patolojik kalıplarda felaketle sonuçlanabilecek geri izlemeye sahip olabilir. Test cihazını asan testler, modelin basitleştirilmesi gerektiğinin bir işaretidir; genellikle iç içe geçmiş nicelik belirteçlerinden ve belirsiz değişimden kaçınılarak.

En İyi Uygulamalar

Sık sorulan sorular

Bu araç hangi normal ifade biçimini destekliyor?
JavaScript'in yerleşik RegExp motorunu kullanır; bu motor, ileriye dönük izlemeler, geriye dönük izlemeler (modern tarayıcılarda), adlandırılmış yakalama grupları ve Unicode özellik kaçışları dahil olmak üzere standart sözdizimini destekler.
Normal ifade değiştirmelerini test edebilir miyim?
Evet. Bir değiştirme deseni girmek için Değiştirme moduna geçin. Yakalama grubu geri referansları için $1, $2 vb. ve adlandırılmış gruplar için $<name> kullanabilirsiniz.
Regex'im neden Python/PHP'dekinden farklı şekilde eşleşiyor?
Farklı programlama dilleri biraz farklı regex motorlarına sahiptir. JavaScript, sahiplik nicelik belirteçlerini veya PCRE'ye özgü bazı özellikleri desteklemez. Temel sözdizimi (karakter sınıfları, niceleyiciler, gruplar) diller arasında aynıdır.
Araç normal ifade kalıplarımı kaydediyor mu?
Hayır. Hiçbir şey kaydedilmez veya aktarılmaz. Araç tamamen tarayıcınızda çalışır. Regex dizesini kopyalayarak kalıpları yer imlerine ekleyebilir veya paylaşabilirsiniz.
Gerçek bir özel karakteri nasıl eşleştiririm?
Ters eğik çizgi ile kaçın. Gerçek bir noktayı eşleştirmek için: \. Gerçek bir ters eğik çizgiyi eşleştirmek için: \\. Karakter sınıflarının içinde [...] çoğu özel karakter anlamını yitirir.
Test cihazı bir sunucuda mı çalışıyor?
Hayır. Desen derlemesi ve eşleştirmesi tarayıcınızda yerel RegExp nesnesi kullanılarak gerçekleşir.
JavaScript olmayan motorlara ilişkin kalıpları test edebilir miyim?
Çoğunlukla. Basit modeller için büyük motorlar aynı fikirdedir. Gelişmiş özellikler için (arkasına bakma, atomik gruplar, sahiplik niceleyicileri, Unicode özellik kaçışları), hedef motorun belgelerine göre onaylayın.
Çok büyük girdileri işliyor mu?
Birkaç megabayta kadar sorunsuz çalışır. Daha büyük girişler, özellikle geri izlemeye eğilimli modellerde tarayıcıyı yavaşlatabilir veya kilitleyebilir.