Ücretsiz çevrimiçi regex test cihazı ve görselleştirici. Bir JavaScript normal ifadesi yazın ve bunun etkileşimli bir diyagram olarak çizildiğini, sade İngilizce olarak açıklandığını ve renk kodlu yakalama gruplarıyla canlı olarak eşleştirildiğini görün. Kodu değiştirin, çıkartın, birim testi yapın ve dışa aktarın; kayıt gerektirmez.
Deseninizin ne anlama geldiğini gösteren bir regex test aracı
Normal ifadeleri tek bir yerde test edin, hata ayıklayın ve anlayın. Bir desen yazın ve anında etkileşimli bir demiryolu diyagramı olarak çizilir, jeton jetonla sade bir İngilizceyle açıklanır ve her eşleşme ve yakalama grubu rengiyle vurgulanmış olarak metninizle birlikte canlı olarak çalıştırılır. Tarayıcınızın içinden değiştirin, çıkarın, bölün, birim testleri yazın, 9 dil için çalışma kodunu dışa aktarın ve yıkıcı geri izleme konusunda uyarı alın.
Çoğu regex test cihazı size yalnızca bir modelin eşleşip eşleşmediğini söyler. Bu aynı zamanda size bunun nedenini de gösteriyor. Siz yazarken, normal ifade ayrıştırılır ve bir demiryolu diyagramı olarak çizilir: diyagramdaki her yolun, desenin eşleşebileceği bir dize olduğu soldan sağa bir harita. Herhangi bir kutunun üzerine geldiğinizde deseninizde eşleşen karakterler yanıyor ve sade bir İngilizce açıklama size o parçanın tam olarak ne yaptığını anlatıyor. Metin imlecini desen üzerinde hareket ettirdiğinizde diyagram onu takip eder. Altında, deseniniz her eşleşme vurgulanarak ve her yakalama grubu kendi renginde olacak şekilde kendi test metninizle canlı olarak çalışır; böylece neyin eşleştiğini ve neden eşleştiğini aynı anda görebilirsiniz.
Özellikler
Herhangi bir modelin etkileşimli demiryolu diyagramı: regex'te bir kutuyu aydınlatmak için üzerine gelin
Her belirtecin, grubun, niceleyicinin ve genel bakışın sade İngilizce açıklaması
Metin içindeki renk kodlu yakalama gruplarıyla canlı maç vurgulama
Her grubun ne yakaladığını görmek için doğrudan şema üzerinde bir eşleşmeye tıklayın
İmlecinizi takip eden söz dizimi renkli desen düzenleyici
Tüm JavaScript bayrakları: g, i, m, s, u, v (unicode kümeleri) ve y
$1, $<name>, $& ve vurgulanan öncesi/sonrası önizlemesi ile değiştirin
Eşleşmeleri şablonlar, benzersiz/sıralama, CSV ve JSON dışa aktarımıyla bir listeye çıkarın
Metni bir normal ifadeye göre bölme ve eşleşmesi gereken (veya eşleşmemesi gereken) birim testleri
JavaScript, TypeScript, Python, PHP, Java, C#, Go, Rust ve Ruby için kod dışa aktarımı
Uyumluluk tablosu: Python, PCRE, Go veya Rust'ta hangi özelliklerin bozulduğunu görün
ReDoS koruması: bir çalışanda çalışır, kaçak kalıpları durdurur ve iç içe geçmiş niceleyicileri işaretler
40 test edilmiş modelden oluşan kütüphane ve örneklerden oluşturma oluşturucu
Tıklanabilir kısa bilgiler, kayıtlı modeller ve paylaşılabilir bağlantılar, %100 tarayıcınızda
Regex Test Cihazı ve Görüntüleyici nasıl kullanılır?
1
Bir desen girin
Bir normal ifade yazın (/pattern/flags yapıştırıldığında otomatik olarak bölünür), desen kitaplığından bir tane seçin veya Oluştur sekmesindeki örneklerden bir tane oluşturun.
2
Bayrakları değiştir
Eşleştirme davranışını değiştirmek için g, i, m, s, u, v veya y'ye tıklayın; ne yaptığını görmek için bir bayrağın üzerine gelin.
3
Görsel diyagramı okuyun
Desenin her bir parçasının ne anlama geldiğini görmek için demiryolu şemasındaki herhangi bir kutunun üzerine gelin veya tıklayın veya Açıklama'ya geçin.
4
Metninize göre test edin
Metni test dizesine yapıştırın; maçlar ve yakalama grupları canlı olarak vurgulanır. Diyagramda her grubun değerini görmek için bir eşleşmeye tıklayın.
5
Değiştirin, çıkarın veya test edin
Desenin tam olarak ihtiyacınız olanı yapıp yapmadığını kontrol etmek için Değiştir, Çıkart, Böl ve Birim testlerini kullanın.
6
Dışa aktarın veya paylaşın
Dilinize ait çalışma kodunu Kod sekmesinden kopyalayın, diyagramı SVG/PNG olarak indirin veya bir paylaşım bağlantısını kopyalayın.
Yaygın kullanım durumları
Her seferinde bir diyagram kutusu kullanarak, devraldığınız karmaşık bir normal ifadeyi anlayın
Bir normal ifadenin verilerinizle eşleşmemesinin nedenlerini ayıklayın
Göndermeden önce bir e-postayı, URL'yi, telefonu veya şifre modelini doğrulayın
Adlandırılmış yakalama gruplarıyla günlük satırlarından alanları çıkarın
Grup referanslarıyla bul ve değiştir'i oluşturun ve önizleyin
Bir JavaScript regex'ini Python, PHP, Go veya Java'ya taşıyın
Korkunç geri izleme (ReDoS) için bir modeli kontrol edin
Düzenli ifadeleri görsel bir açıklamayla öğretin veya öğrenin
Ayrıntılı kılavuz
Regex demiryolu diyagramı nasıl okunur
Demiryolu (sözdizimi) diyagramları bir tren yolu gibi okunur: soldaki noktadan başlayın, sonuna kadar herhangi bir rotayı takip edin ve içinden geçtiğiniz karakterler, normal ifadenin kabul ettiği bir dize oluşturur. Dallar alternatifler anlamına gelir, alttan geri dönen bir parça tekrar anlamına gelir ve yukarıdaki kutuyu atlayan bir parça o parçanın isteğe bağlı olduğu anlamına gelir. Renkli çerçeveler yakalama gruplarıdır (vurgulanan eşleşmelerinizde aynı renkler kullanılır), kesikli çerçeveler metni tüketmeden kontrol eden bakışlardır ve hap şeklindeki kutular bir karakter yerine konumla eşleşen bağlantılardır. Sonuçlarda bir eşleşmeye tıkladığınızda, her grup karesi yakaladığı tam değeri veya grup atlanmışsa "eşleşme yok" ifadesini gösterir.
Diyagramda
Normal ifade sözdizimi
Anlam
Alıntılanan metnin bulunduğu kutu
abc \. \N
Tam olarak bu karakterler
Kutu listeleme 'şunlardan biri:'
[a-z0-9_]
Setten herhangi bir tek karakter
Kutu listesi 'hiçbiri:'
[^\s@]
Kümede OLMAYAN herhangi bir tek karakter
Yeşil kutu (rakam, kelime karakteri…)
\d \w \s .
Bir karakter sınıfı kısaltması
Hap şeklindeki kutu
^ $ \b
Çapa: bir pozisyon, bir karakter değil
Parça dallara ayrılıyor
kedi|köpek
Her iki alternatif
Döngüleri alttan geriye doğru takip edin
+ * {2,5}
Tekrarla (etiket kaç kez olduğunu gösterir)
Yukarıdaki bypassları izle
? * {0,3}
Parça isteğe bağlıdır
Kesikli döngü
+? *?
Tembel: Mümkün olduğu kadar az tekrar edin
Renkli çerçeve '1 numaralı isim'
(…) (?<isim>…)
Soldan sağa numaralandırılmış yakalama grubu
Kesikli çerçeve 'ardından:'
(?=…) (?!…) (?<=…)
İleriye / arkaya bakma
Regex hile sayfası: her gün kullanacağınız sözdizimi
Test cihazının üzerindeki yerleşik hile sayfasını açın ve imlecinize eklemek için herhangi bir belirteci tıklayın. Bunlar neredeyse her modelin yapı taşlarıdır:
Jeton
Maçlar
Örnek
\d
0-9 arası bir rakam
\d{4} 2026 ile eşleşir
\w
Harf, rakam veya alt çizgi
\w+ user_42 ile eşleşiyor
\s
Boşluk (boşluk, sekme, yeni satır)
a\sb 'a b' ile eşleşir
.
Satır sonu dışında herhangi bir karakter
a.c abc, a-c ile eşleşir
[abc] / [^abc]
Listelenen karakterlerden biri / hiçbiri
[aeiou] bir sesli harfle eşleşir
^ ve $
Dizenin başlangıcı ve sonu (veya m'li satır)
^\d+$ yalnızca rakamlardan oluşur
\b
Bir kelime sınırı
\bcat\b 'birleştirme'yi atlıyor
* + ?
0+, 1+ veya 0-1 tekrar
renk, renk ve renkle eşleşir
{n,m}
n ve m tekrar arasında
\d{2,4}
(…) ve (?<isim>…)
Yakalama grubu / adlandırılmış grup
(?<yıl>\d{4})
(?:…)
Yakalamadan gruplandır
(?:ab)+
\1, \k<isim>
Daha önceki bir grupla aynı metin
(\w)\1 'll' ile eşleşir
(?=…) (?!…)
Takip edildi / takip edilmedi
\d+(?=px)
(?<=…) (?<!…)
Öncesinde / öncesinde değil
(?<=\$)\d+
Regex bayrakları açıklandı
Bayraklar tüm modelin nasıl davranacağını değiştirir. Tek tıklamayla bunları değiştirin; ne yaptığını görmek için bir bayrağın üzerine gelin.
Bayrak
İsim
Etki
g
küresel
İlkinde durmak yerine tüm eşleşmeleri bulun
i
büyük/küçük harf göz ardı
Harfler büyük veya küçük harflerle eşleşir
m
çok satırlı
^ ve $ her satırın başında/sonunda eşleşir
s
noktaTümü
. satır sonlarıyla da eşleşir
u
evrensel kod
Emoji ve astral karakterleri tek bir karakter olarak ele alır; \p{…}'yi etkinleştirir
v
Unicode setleri
Yaptığınız her şeyin yanı sıra [\p{L}--[a-z]] gibi ayarlı işlemler
y
yapışkan
Her maç tam olarak bir öncekinin bittiği yerden başlamalıdır
Tek bir yerde değiştirin, çıkarın, bölün ve birim testi yapın
$1, $<name>, $& ve $$ jetonlarıyla bul ve değiştir kuralı oluşturmak için Değiştir'e geçin; sonuç, eklenen her parçayı vurgular, böylece onu gerçek veriler üzerinde çalıştırmadan önce kontrol edebilirsiniz. Extract, benzersiz ve sıralama seçenekleri ve e-tablolar için CSV veya JSON dışa aktarımı ile bir şablon kullanarak (örneğin iki grubu değiştirmek için 2 $, 1 $) her eşleşmeyi bir listeye dönüştürür. Split, yakalanan ayırıcılar da dahil olmak üzere String.split() işlevinin tam olarak ne döndürdüğünü gösterir. Birim testleri davranışı belirlemenize olanak tanır: eşleşmesi gereken, tamamen eşleşmesi gereken veya eşleşmemesi gereken dizeler ekleyin ve başarılı/başarısız sayısı her tuş vuruşunda güncellenir, böylece düzeninizdeki küçük bir değişiklik, önceden düzeltmiş olduğunuz bir durumu sessizce bozmaz.
Felaket düzeyinde geri izleme (ReDoS) ve bu test cihazının sizi nasıl koruduğu
(a+)+$ veya (\w+\s?)*$ gibi bazı kalıplar, tekrarları arasında üstel olarak birçok şekilde bölünebilir. Giriş neredeyse eşleştiğinde, motor her kombinasyonu dener ve bir tarayıcı sekmesini dondurabilir veya bir sunucuyu kapatabilir; bu, ReDoS (normal ifade hizmet reddi) olarak bilinen bir güvenlik açığıdır. Bu test cihazı, her modeli ayrı bir Web Worker'da iki saniye sınırıyla çalıştırır: motor sıkışırsa durdurulur ve donmuş sayfa yerine net bir uyarı alırsınız. Yerleşik bir linter ayrıca, riskli şekli (iç kısmı da tekrar eden tekrarlanan bir grup) siz göndermeden önce işaretler ve alan adında kaçışsız bir nokta, [A-z] aralıkları ve boş alternatifler gibi diğer yaygın hataları da işaretler.
Python, PHP, Java, C#, Go, Rust ve Ruby'de aynı normal ifadeyi kullanın
Test cihazı, tarayıcınızın kendi JavaScript (ECMAScript) normal ifade motorunu çalıştırır; dolayısıyla sonuçlar JavaScript, TypeScript ve Node.js için kesindir. Kod sekmesi, deseninizi diğer sekiz dil için yapıştırmaya hazır koda dönüştürür ve farklı olan parçaları dönüştürür: adlandırılmış gruplar Python için (?P<name>…) olur, bayraklar C# için RegexOptions veya Go ve Rust için satır içi (?i) olur ve yedek belirteçler her dil için yeniden yazılır. Uyumluluk tablosu, modelinizin kullandığı her özelliği ve her motorun onu destekleyip desteklemediğini listeler:
Test edilmiş bir modelden başlayın veya örneklerden bir model oluşturun
Desen kitaplığı, her biri örnek metin içeren 40 adet hazır, test edilmiş ifade içerir: e-posta, URL, IPv4 ve IPv6, E.164 ve ABD telefon numaraları, güçlü şifreler, UUID'ler, anlamsal sürümler, Birleşik Krallık posta kodları, ISO ve GG/AA/YYYY tarihleri, fiyatlar, hashtag'ler, @bahsetmeler, Markdown bağlantıları, HTML etiketleri, Apache/Nginx günlük satırları, yinelenen kelimeler ve daha fazlası. Verilerinizden başlamayı tercih ederseniz Build'e birkaç örnek yapıştırın: oluşturucu harfleri, rakamları ve simgeleri hassaslaştırabileceğiniz ^\d{4}-\d{2}-\d{2}$ gibi bir modelde gruplandırır. Build ayrıca herhangi bir gerçek metinden kaçabilir, böylece . * ? ( ) $ tam olarak eşleşiyor.
Tasarım gereği özel
Her şey tarayıcınızın JavaScript motorunda yerel olarak çalışır: yazdığınız hiçbir şey bir sunucuya yüklenmez, günlüğe kaydedilmez veya saklanmaz. Son oturumunuz bu tarayıcıda tutulur, böylece kaldığınız yerden devam edebilirsiniz, kayıtlı kalıplar cihazınızda kalır ve paylaşım bağlantıları kalıp, metin ve testleri URL'nin kendisinde taşır, dolayısıyla bizim tarafımızda hiçbir şey saklanmaz.
Sık sorulan sorular
Bu test cihazı hangi normal ifade aromasını kullanıyor?
G, i, m, s, u, v ve y işaretlerini de içeren, Chrome, Firefox, Safari ve Node.js'nin kullandığı tarayıcının kendi JavaScript (ECMAScript) normal ifade motorunu kullanır. Sonuçlar JavaScript ve TypeScript için kesindir; Kod sekmesi modeli diğer dillere dönüştürür.
Yakalama gruplarını test edebilir miyim?
Evet. Her eşleşme kendi konumunu ve her numaralandırılmış ve adlandırılmış grubun değerini listeler, gruplar metninizin içinde renklerle vurgulanır ve bir eşleşmeye tıklamak her grubun yakalanan değerini doğrudan diyagramda gösterir.
Değiştirme önizlemesi nasıl çalışır?
$1, numaralı gruplar için $2, adlandırılmış gruplar için $<name>, tüm eşleşme için $& ve gerçek dolar işareti için $$ kullanarak yenisini yazın. Sonuç, canlı olarak güncellenir ve eklenen her parçayı tam olarak String.replace() işlevinin üreteceği gibi vurgular.
Test verilerim gizli mi?
Evet. Regex tamamen tarayıcınızda, yerel bir Web Worker'da çalışır. Desenleriniz ve test dizeleriniz hiçbir zaman yüklenmez; kaydedilen desenler yalnızca bu tarayıcıda kalır.
Normal bir ifadeyi metnime göre nasıl test ederim?
Deseninizi yazın ve örnek metni yapıştırın; eşleşmeler canlı olarak vurgulanır ve yakalama grupları gösterilir, böylece normal ifadenizin tam olarak neyle eşleştiğini görebilir ve onu anında hassaslaştırabilirsiniz.
Regex'im neden hiçbir şeyle eşleşmiyor?
Yaygın nedenler arasında eksik bir işaret (büyük/küçük harf için, m so ^ ve $ satır başına çalışır, s so . satır sonlarını geçer), çıkış yapılmamış bir özel karakter veya başka bir dildeki sözdizimi yer alır. Her bir parçanın ne beklediğini görmek için diyagramın üzerine gelin, sade İngilizce açıklamayı okuyun ve modelin altındaki uyarıları kontrol edin.
Aynı modeli JavaScript ve diğer tatlar için de test edebilir miyim?
Eşleştirme JavaScript motorunda çalışır ve Kod sekmesi Python, PHP, Java, C#, Go, Rust ve Ruby için çalışma kodu oluşturarak adlandırılmış grupları, bayrakları ve değiştirme sözdizimini dönüştürür. Uyumluluk tablosu, geriye bakma veya geriye referanslar gibi hangi özelliklerin her motorda desteklenmediğini gösterir.
Regex görselleştiricisi veya demiryolu şeması nedir?
Bir regex görselleştiricisi, demiryolu diyagramı olarak düzenli bir ifade çizer: soldan sağa takip ettiğiniz, dalların alternatif olduğu, döngülerin tekrar olduğu ve baypasların isteğe bağlı parçalar olduğu bir yol. Uzun kalıpların okunmasını ham sözdiziminden çok daha kolaylaştırır. Burada diyagram etkileşimlidir: modelde vurgulamak için bir kutunun üzerine gelin ve sade İngilizce açıklamayı görün.
Regex diyagramını indirebilir miyim?
Evet. Dokümantasyon, kod incelemeleri veya öğretim materyali amacıyla indirmek için diyagramın üzerindeki SVG veya PNG düğmelerini kullanın. Yakınlaştırma ve genişliğe sığdırma kontrolleri uzun desenlere yardımcı olur.
Yıkıcı geri izleme (ReDoS) nedir?
(a+)+$ gibi bir kalıp, aynı metni iç içe geçmiş tekrarlar arasında üstel olarak pek çok şekilde bölebildiğinde, ramak kala girdisi motorun saniyeler veya saatler boyunca çalışmasına neden olur. Bu test cihazı, kalıpları bir Web Worker'da çalıştırır, iki saniye sonra durdurur ve bunları dağıtmadan önce iç içe niceleyiciler hakkında uyarır.
Bir JavaScript regex'ini Python'a nasıl dönüştürebilirim?
Kod sekmesini açın ve Python'u seçin. Araç, (?<name>…)'yi (?P<name>…), \k<name>'yi (?P=name) olarak yeniden yazar, i, m ve s bayraklarını re.IGNORECASE, re.MULTILINE ve re.DOTALL ile eşler ve $1 değiştirmelerini \g<1>'e dönüştürür. Python'un yerleşik yeniden modülünün \p{…} Unicode özelliklerini desteklemediğini unutmayın.
Regex bayrakları g, i, m, s, u, v ve y ne anlama geliyor?
g tüm eşleşmeleri bulur, i büyük/küçük harf dikkate almaz, m ^ ve $'ın her satırda çalışmasını sağlar, s izin verir. satır sonlarını eşleştirir, u tüm Unicode ve \p{…} özelliklerini etkinleştirir, v Unicode kümesi işlemlerini ekler ve y (yapışkan) yalnızca son eşleşmenin bittiği tam konumda eşleşir.
Açgözlü ve tembel niceleyiciler arasındaki fark nedir?
Açgözlü niceleyiciler (*, +, {n,m}) mümkün olduğu kadar eşleşir, ardından gerekirse karakterleri geri verir; tembel olanlar (*?, +?, {n,m}?) mümkün olduğu kadar az eşleşir ve yalnızca gerektiğinde genişler. Örneğin <.+> bir etiket satırının tamamıyla eşleşirken <.+?> her seferinde bir etiketle eşleşir. Diyagramda tembel bir döngü kesikli olarak çizilmiştir.
İleriye bakma ve geriye bakma nasıl çalışır?
Maça dahil etmeden mevcut konumdan sonra (?=…) veya önce (?<=…) ne geldiğini kontrol ederler; olumsuz formlar (?!…) ve (?<!…) metnin orada OLMAMASINI gerektirir. Örneğin \d+(?=px) '12px'de 12 ile eşleşir. JavaScript her uzunluktaki geriye bakmayı destekler.
Bu araç benim için bir normal ifade oluşturabilir mi?
Evet. Oluştur sekmesine birkaç örnek yapıştırdığınızda harfleri, rakamları ve simgeleri genelleştirerek bir model önerir (örneğin 2026-09-24 \d{4}-\d{2}-\d{2} olur). Ayrıca e-posta, URL, IP adresi, telefon numarası, tarih ve şifre kuralları gibi kitaplıktaki test edilmiş 40 kalıptan da başlayabilirsiniz.
Düzenli bir ifade için birim testlerini nasıl yazarım?
Birim testleri sekmesini açın ve eşleşmesi, tamamen eşleşmesi veya eşleşmemesi gereken dizeleri ekleyin. Her test, başarılı/başarısız sayımıyla her tuş vuruşunda yeniden çalıştırılır ve İçe Aktarma satırları, test metninizin her satırını bir test senaryosuna dönüştürür.
Bir normal ifadeyi birisiyle paylaşabilir miyim?
Tam modeli, bayrakları, test metnini, değiştirme ve birim testlerini yeniden açan bir URL'yi kopyalamak için Paylaş bağlantısını tıklayın. Her şey bağlantının içinde kodlanmıştır, dolayısıyla hiçbir şey sunucuda saklanmaz.
Bunun regex101 veya RegExr'den farkı nedir?
regex101, bu aracın yapamadığı PCRE, Python ve Java gibi çeşitli motorlar arasında geçiş yapmanızı sağlar. Bu test cihazı, kodunuzun gerçekte üzerinde çalıştığı JavaScript motoruna odaklanır ve hesap olmadan ve hiçbir şey yüklenmeden etkileşimli bir demiryolu şeması, birim testleri, ReDoS koruması, 9 dil için kod aktarımı ve bir uyumluluk tablosu ekler.