Regex test aracı
Kalıpları gerçek metne karşı, doğrudan tarayıcında test et.
| # | Tür | Değer | Konum |
|---|
Tarayıcında çalışır. Yazdığın hiçbir şey bir yere gönderilmez.
- Canlı eşleşme vurgusu
- İsimli ve numaralı gruplar
- Bir worker içinde güvenle çalışır
Bir düzenli ifade nasıl test edilir
- Kalıbını yaz veya yapıştır ve ihtiyacın olan bayrakları seç.
- Eşleştirmek istediğin metni yapıştır.
- Vurgulanan eşleşmeleri, grup tablosunu kontrol et, veya bir değiştirmeyi önizle.
Regex sözdizimi hızlı referansı
| Kalıp | Eşleşen |
|---|---|
| \d | Herhangi bir rakam, 0'dan 9'a |
| \w | Herhangi bir harf, rakam veya _ karakteri |
| \s | Herhangi bir boşluk karakteri |
| + | Önceki belirteçten bir veya daha fazla |
| * | Önceki belirteçten sıfır veya daha fazla |
| ? | Sıfır veya bir, ya da bir niceleyiciyi tembel yapar |
| ^ ve $ | String veya satırın başı ve sonu |
JavaScript regex özellikleri
| Özellik | Sözdizimi | Not |
|---|---|---|
| İsimli gruplar | (?<isim>...) | ES2018'den beri destekleniyor |
| Geri bakış (lookbehind) | (?<=...) ve (?<!...) | ES2018'den beri destekleniyor |
| Unicode modu | u bayrağı | \p{Letter} gibi Unicode özellik kaçışları için gerekli |
| Büyük/küçük harf duyarsız | i bayrağı | Çoğu diğer dilde de aynı mantık |
Kalıp yazma ipuçları
- Gerçek karakteri kastettiğinde . ( ) [ ] gibi özel karakterleri ters eğik çizgiyle kaçır.
- Eşleşmeyi daha sonra referans almana gerek olmadığında gruplamak için yakalamayan bir grup (?:...) kullan.
- Aç gözlü niceleyiciler mümkün olduğunca çok yakalar. İlk mümkün noktada duran tembel eşleştirme için birinden sonra ?, örneğin +? ekle.
- Sadece eşleşmesini beklediğin metin değil, boş bir string veya fazladan boşluk gibi uç durumlara karşı da test et.
Regex test aracı SSS
Kalıbım neden yanıt vermeyi durdurdu?
Bazı kalıplar belirli metinlerde katlanarak geri izleme yapabilir. Eşleştirme, 1,5 saniye sınırlı bir arka plan worker'ında çalışır, bu yüzden kaçak bir kalıp sekmeyi dondurmak yerine durdurulur.
Bayraklar ne anlama gelir?
g sadece ilki yerine her eşleşmeyi bulur, i büyük/küçük harfi yok sayar, m ^ ve $'ın satır satır eşleşmesini sağlar, s bir noktanın yeni satırları da eşlemesine izin verir, u tam Unicode modunu açar, y eşleştirmeyi son indekse sabitler, d ise her eşleşme için başlangıç ve bitiş konumları ekler.
Değiştirme kutusu test metnimi değiştiriyor mu?
Hayır. String.replace'in üreteceği şeyi ayrı bir sonuç kutusunda gösterir, bu yüzden yazdığın test metni tam olarak olduğu gibi kalır.
İsimli yakalama grupları destekleniyor mu?
Evet. Bir grubu (?<isim>...) olarak yaz, ismi eşleşmeler tablosunda grup numarasının yanında görünür.
Metnim bir yere gönderiliyor mu?
Hayır. Eşleştirme kendi tarayıcı sekmenin içindeki bir worker'da çalışır, yazdığın hiçbir şey sayfadan çıkmaz.
Bu hangi regex türünü kullanıyor?
Tarayıcının yerleşik JavaScript RegExp motorunu, bir web uygulaması veya Node.js betiği yazıyorsan kalıplarını çalıştıran motorun aynısını.
Yıkıcı geri izleme (catastrophic backtracking) nedir?
(a+)+b gibi iç içe tekrarlayan gruplara sahip bir kalıbın, girdi tek bir karakter büyüdükçe başarısız olmasının katlanarak uzayabilmesidir. Buradaki 1,5 saniyelik worker zaman aşımı, sayfayı dondurmadan önce böyle bir kalıbı yakalar.
^ ve $ tüm string yerine her satırın başını ve sonunu eşleyebilir mi?
Evet, m (çok satırlı) bayrağını aç. Açık değilken ^ ve $ sadece tüm test metninin en başını ve en sonunu eşler.