Regex Test Aracı
Düzenli ifadeleri canlı vurgulama, yakalama grupları ve değiştirme önizlemesiyle test edin — tamamen tarayıcınızda.
Motor: tarayıcınızın çalıştırdığı JavaScript (ECMAScript) düzenli ifadeleri. Davranış PCRE, Python, Go, Java veya .NET'ten farklı olabilir.
Deseni açıkla
Parça parça açıklamasını görmek için bir desen girin.
Desen kütüphanesi
Bir deseni (örnek metinle birlikte) test aracına yüklemek için tıklayın.
Satır başına bir durum. Desenin eşleşmesi gerekiyorsa "+ ", eşleşMEMESİ gerekiyorsa "- " ile başlayın (g ve y bayrakları burada yok sayılır).
Kod üret
Kod üretmek için bir desen girin.
Desen yazıldığı gibi kopyalanır (yalnızca adlandırılmış gruplar, bayraklar ve değiştirme belirteçleri uyarlanır). Hedef motorda geri bakış, geri başvuru ve Unicode desteğini kontrol edin.
- \d — herhangi bir rakam (0–9)
- \w — herhangi bir kelime karakteri (harf, rakam, alt çizgi)
- \s — herhangi bir boşluk karakteri
- . — satır sonu hariç herhangi bir karakter
- ^ — metnin başlangıcı (multiline bayrağıyla satırın başlangıcı)
- $ — metnin sonu (multiline bayrağıyla satırın sonu)
- * — önceki öğeden sıfır veya daha fazla
- + — önceki öğeden bir veya daha fazla
- ? — önceki öğeden sıfır veya bir tane
- {n,m} — n ile m arasında tekrar
- (...) — yakalama grubu, (?:...) — yakalamayan grup
- \b — kelime sınırı, | — alternatif (VEYA)
Tarayıcıda regex testi tam olarak nasıl çalışır?
Düzenli ifade (regex), metin eşleştirmek için kullanılan kompakt bir desen dilidir — "bu bir e-posta adresine benziyor mu" sorusundan, "bu belgedeki her telefon numarasını bul"a, "bu metinden HTML etiketlerini temizle"ye kadar pek çok işte kullanılır. İşin can sıkıcı tarafı, regex söz diziminin ince hatalara son derece açık olması: kaçış karakteri eksik bir `.`, olması gerekenden fazlasını yutan açgözlü bir `*`, beklediğiniz şeyi yakalamayan bir grup. Bir deseni kör kör yazıp yanlış olduğunu ancak canlı ortamda gerçek verilerle çalıştırdıktan sonra fark etmek, bu dersi öğrenmenin kötü bir yolu.
Bu araç tamamen JavaScript'in kendi yerleşik `RegExp` motoru üzerinde çalışır ve siz yazdığınız anda doğrudan tarayıcınızda çalışır — aradan hiçbir sunucu geçmez, bu yüzden test ettiğiniz metin (gerçek kullanıcı verisi, log satırları veya üçüncü taraf bir servise yapıştırmak istemeyeceğiniz herhangi bir şey olabilir) hiçbir zaman cihazınızdan çıkmaz. JavaScript kodunuzun üretimde çalışacağı motorun tıpatıp aynısı kullanıldığından, burada gördükleriniz — hangi karakterlerin eşleştiği, açgözlü niceleyicilerin nasıl davrandığı, bir grubun bir şey yakalayıp yakalamadığı — çalışma zamanında alacağınız sonucun ta kendisidir, farklı bir regex çeşidinden gelen bir yaklaşık tahmin değildir.
Bir desen yazın ve ihtiyacınız olan bayrakları açın: her seferinde ilkinde durmak yerine tüm eşleşmeleri bulmak için `g`, büyük/küçük harf duyarsız eşleştirme için `i`, `^` ve `$`'ın tüm metin yerine her satırın başında/sonunda eşleşmesi için `m`, `.`'ın satır sonlarıyla da eşleşmesine izin vermek için `s`. Test metninizdeki her eşleşme anında vurgulanır ve her biri aşağıda tam eşleşen metni, konumunu ve `(?<year>\d{4})` gibi adlandırılmış gruplar dahil tüm yakalama gruplarını gösterecek şekilde ayrıştırılır — böylece çıkarmak istediğiniz grubun gerçekten eşleşen grup olup olmadığını anında görebilirsiniz. Değiştir bölümü, deseniniz ve bir değiştirme metniyle `String.replace()` fonksiyonunun tam olarak ne üreteceğini, `$1` veya `$<year>` gibi grup geri referanslarıyla birlikte gösterir.
Aşağıdaki hızlı başvuru paneli, işin ortasında en sık unutulan öğeleri kapsar — `*` ile `+` arasındaki fark, yakalamayan grup `(?:...)`'ın ne işe yaradığı, `\b`'nin kelime sınırını nasıl işaretlediği — sayfadan ayrılıp bir yerlerde aramanıza gerek kalmadan. Gerçekçi test verileriyle istediğiniz gibi davranan bir deseniniz olduğunda, doğrudan kodunuza eklemeye hazır demektir. Çevresindeki veriyi de doğrulamanız veya yeniden biçimlendirmeniz gerekiyorsa, JSON Formatlayıcı & Doğrulayıcı ve Metin Fark Karşılaştırıcı araçları bu iş için doğal tamamlayıcılardır.
Sık sorulan sorular
Kötü bir regex deseni sayfayı dondurur mu?
Hayır — eşleştirme ayrı bir Web Worker içinde kesin bir zaman aşımıyla çalışır; yıkıcı geri izleme yapan bir desen bile sekmenizi kilitleyemez.
Adlandırılmış ve numaralı yakalama gruplarını gösteriyor mu?
Evet — her eşleşme numaralı gruplarını ve (?<year>\d{4}) gibi adlandırılmış grupları listeler.
Kodda kullanmadan önce bir değiştirmeyi önizleyebilir miyim?
Evet — Değiştir paneli, grup geri başvuruları dahil String.replace()'in tam olarak ne üreteceğini gösterir.