Regex Test Aracı
Regex desenlerini canlı eşleşme vurgulamasıyla test et
Nasıl çalışır
Regex Test Aracı — Regex desenlerini canlı eşleşme vurgulamasıyla test et. Tüm işlemler tarayıcında yapılır — yükleme yok, üyelik yok, e-posta gerek yok. Sonsuza dek ücretsiz.
Son güncelleme:
Regex Test Aracı hakkında
Regex, otuz saniyelik bir test döngüsünün bir saatlik dik dik bakmayı kurtardığı becerilerden biri. Bir pattern yapıştır, örnek bir string yapıştır, flag'leri ya da kaçak parantezi düzeltirken eşleşmelerin canlı parıldamasını izle. Bu regex test aracı JavaScript RegExp motorunu kullanır — koduna tarayıcıda, Node.js'te veya V8/JavaScriptCore tabanlı herhangi bir runtime'da girecek olan motorun aynısı. Yani burada gördüğün, production'da alacağın şey.
Flag toggle'ları ECMAScript'in desteklediği her şeyi kapsar: g global, i case-insensitive, m multiline ^/$ anchor'ları, s dotAll ("." newline ile eşleşir), u tam Unicode, y sticky. Her eşleşme sana tam metnini, index'ini ve capture group'ları (numaralı ve isimli) gösterir — kodun beklediği tam çıkarım şeklini kurabilir ve doğrulayabilirsin.
Regex lehçeleri farklıdır: PHP'deki PCRE, Go ve Cloud Logging'deki RE2, .NET motoru ve Python'un re modülü; lookbehind syntax'ı, possessive quantifier ve Unicode property escape konularında ayrışır. Bu test aracı özellikle ECMAScript / JavaScript hedefler — eğer pattern bir Go servisi veya BigQuery sorgusu için yazıyorsan, ship etmeden önce dialect'i bir kez daha kontrol et.
Regex Test Aracı nasıl kullanılır
- Düzenli ifadeni Pattern alanına yaz veya yapıştır (etrafına slash koymaya gerek yok).
- İhtiyacın olan flag'leri aç: g, i, m, s, u, y. Her biri canlı eşleşme listesini anında günceller.
- Temsil edici bir test string'ini Test string alanına yapıştır — çok satırlı input sorun değil.
- Matches panelini oku: her giriş tam eşleşmeyi ve numaralı/isimli capture group'ları gösterir.
- Pattern'ı, "Eşleşme yok" kaybolup vurgulanan span'ler beklediğin yerleri kaplayana kadar tweak et.
- "Geçersiz regex" görüyorsan, kapanmamış grup, escape edilmemiş bir karakter sınıfı veya flag çakışması ara.
Yaygın kullanım senaryoları
- Form kütüphanesine yapıştırmadan önce email, slug veya telefon alanı için bir input doğrulama pattern'ı kurmak.
- Hızlı analiz script'i için log satırlarından yapısal alanlar (timestamp, request id, status code) çıkarmak.
- Editöründe $1, $2 gibi capture group referanslarıyla bir search-and-replace pattern'ını rafine etmek.
- Gerçek dosyada çalıştırmadan önce, yıkıcı bir find-and-replace'in sadece beklediğin satırları vuracağından emin olmak.
- Bir takım arkadaşına ".*"in neden greedy olduğunu, lazy quantifier'ların (".*?") nasıl davrandığını öğretmek.
İpuçları ve dikkat edilmesi gerekenler
- g flag'i olmadan sadece ilk eşleşme döner — tüm eşleşmeleri çıkarıyorsan mutlaka aç.
- "."in newline ile de eşleşmesini istiyorsan, "[\s\S]" hilesine başvurmak yerine s (dotAll) flag'ini aç.
- "(?<year>\d{4})" gibi isimli capture group'ları kullan — çağıranlar kırılgan numerik index yerine match.groups.year diyebilsin.
- ECMAScript modern tarayıcılarda lookbehind'ı ("(?<=…)") destekler ama Safari geç kaldı — eski cihazları desteklemen gerekiyorsa hedef runtime'larda doğrula.
Sıkça sorulan sorular
Hangi regex motoru destekleniyor?
JavaScript'in yerleşik RegExp motoru — tarayıcılar ve Node.js'in kullandığının aynısı. ECMAScript flag'leri g, i, m, s, u, y destekleniyor.
Capture group'ları görebilir miyim?
Evet. Her eşleşmede yakalanan gruplar $1, $2, … şeklinde gösterilir. İsimlendirilmiş gruplar her eşleşmenin JSON çıktısında görünür.
'.*' neden çok fazla şeyle eşleşiyor?
Varsayılan olarak '.' newline ile eşleşmez. '.' satır sonu dahil her karakterle eşleşsin istiyorsan 's' (dotAll) flag'ini aç.
Recursive pattern veya possessive quantifier gibi PCRE özellikleri destekleniyor mu?
Hayır. Bu, ECMAScript uyumlu JavaScript RegExp motoru. Recursive pattern, possessive quantifier ("++", "*+") ve bazı PCRE conditional'ları desteklenmez. Bunlar için PHP/Perl/PCRE'ye özel bir araç kullan.
Go (RE2) veya BigQuery için yazılan pattern'ları test edebilir miyim?
Temel şekli prototipleyebilirsin ama RE2, performans ve güvenlik için lookbehind ve backreference'ı bilinçli olarak çıkarır. Mutlaka hedef dialect'te yeniden doğrula — bu araç JS lehçeli.
Pattern'ım sessizce çok şeyle eşleşiyor, neden?
Quantifier'lar default greedy: ".*" mümkün olduğunca çok şey yer. Lazy yapmak için "?" ekle (".*?") veya "." yerine "[^/]*" gibi daha spesifik bir karakter sınıfı kullan.
Blogdan son yazılar
- Cron İfadeleri Sıfırdan: Görsel Rehber5 alanlı POSIX cron syntax, özel karakterler, step değerleri, Quartz uzantıları, AWS cron farkları ve crontab'a doğrudan yapıştırabileceğiniz bir düzine örnekle cron ifadesi nedir sorusunun tam cevabı.
- Developer Olmayanlar İçin Regex: Pratik RehberYazarlar, analistler, pazarlamacılar ve Bul-Değiştir kutusunda yaşayan herkes için sade bir regex rehberi. İşe yarayan söz dizimini öğrenin, on hazır tarifi kopyalayıp kullanın.
İlgili araçlar
- URL Encoder/DecoderURL'lerini ve URI bileşenlerini encode/decode et
- UUID ÜreticiKriptografik rastgele UUID v4 toplu üret
- JWT DecoderJSON Web Token header, payload ve son kullanma tarihini çöz
- Cron İfade OluşturucuCron expression oluştur ve insan diline çevir
- SQL FormatlayıcıSQL sorgularını güzelleştir, küçült veya tüm büyük dialect'lerde formatla
- YAML ↔ JSON ÇeviriciYAML ile JSON arasında çift yönlü dönüşüm