Regex Testi
JavaScript normal ifadelerini g/i/m/s/u/y bayrakları, eşleşme sayıları, yakalama ve adlandırılmış gruplar, satır-sütun aralıkları ve yerel değiştirme önizlemesi ile yerel olarak test edin.
/
/g
Test Metni
Karakterler
0 / 50,000
Eşleşme sonuçları
Eşleştirmeye başlamak için bir model girin
Değiştirme metni
Karakterler
0 / 50,000
Değiştirme Önizlemesi
Hızlı başlangıç
Yaygın kullanım senaryoları
Veri çıkarma
tarihleri çıkarmak için (\d{4}-\d{2}-\d{2}), e-posta adreslerini çıkarmak için ([\w.]+@[\w.]+) kullanın
Biçim doğrulama
bir regex yazın, birden çok örnek yapıştırın ve kalıbın hedef biçimle tam olarak eşleşip eşleşmediğini hızlıca doğrulayın
Toplu değiştirme
içeriği yeniden düzenlemek için yakalama gruplarını kullanın. Örneğin, "Ad Soyad" ifadesini (\S+)\s+(\S+) kalıbı ve $2, $1 değişimiyle "Soyad, Ad" biçimine çevirin
Adlandırılmış gruplar
tarihleri çıkarmak için (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) kullanın, ardından bunları yeniden oluşturmak için $<year>/$<month>/$<day> kullanın
Regex öğrenimi
farklı kalıpları deneyin ve eşleşme davranışını gözlemleyerek niceleyicileri, çapaları ve karakter sınıflarını görsel olarak anlayın
Çok satırlı işleme
^ ve $ işaretlerinin satır bazında eşleşmesi için m bayrağını açın; günlükler, kod ve yapılandırma dosyaları için kullanışlıdır
Kullanım tavsiyeleri
Sınırlamalar ve uyumluluk
Gizlilik ve güvenlik
Sıkça Sorulan Sorular
Düzenli ifade (regex), metin kalıplarını tanımlamak için kullanılan bir dildir. Bunu "gelişmiş arama" gibi düşünebilirsiniz: sabit bir kelimeyi aramak yerine, belirli bir kurala uyan tüm parçaları bulursunuz.\n\nÖrneğin \\d{4}-\\d{2}-\\d{2} deseni YYYY-AA-GG biçimindeki tarihleri, [\\w.]+@[\\w.]+ deseni ise e-posta adreslerini yakalayabilir. Regex; metinden veri çıkarma, biçim doğrulama ve toplu değiştirme işlemlerinde sık kullanılır.\n\n JavaScript, Python, Java, Go gibi çoğu programlama dili ve VS Code, grep, sed gibi birçok araç regex desteği sunar. Bu araç, hızlı denemeler ve öğrenme için tarayıcıdaki JavaScript RegExp motorunu kullanır.
JavaScript regex varsayılan olarak yalnızca ilk eşleşmeyi döndürür. Bu, aracın kısıtı değil, dilin çalışma biçimidir. Tüm eşleşmeleri görmek için bayrak çubuğundaki g seçeneğini açın.\n\ng ve y arasındaki farkı da bilmek gerekir: g metni baştan sona tarar, y (sticky) ise bir sonraki eşleşmenin tam olarak önceki eşleşmenin bittiği konumdan başlamasını ister. Arada boşluk ya da başka bir karakter varsa y durur. Çoğu durumda yalnızca g bayrağını açmak yeterlidir.
En sık dört neden görülür: 1. Parantezler kapanmamış olabilir: her ( için bir ), her [ için bir ] gerekir. IDE otomatik tamamlasa bile araç, yazdığınız kalıbı olduğu gibi test eder. 2. Niceleyici yanlış yerde olabilir: *, +, ?, {n} tekrar edilebilir bir parçadan sonra gelmelidir. *+ veya ?* geçerli değildir; lazy niceleyiciler *? veya +? şeklinde yazılır. 3. Escape eksik olabilir: kalıbın sonunda tek başına \ geçersizdir; \d, \n veya \\ gibi belirli bir karakteri kaçırmalıdır. 4. Unicode property için u bayrağı eksik olabilir: \p{L}, \p{Script=Han} ve benzer property escape’ler bu araçta u bayrağı ister.
Bunlar JavaScript String.prototype.replace() içinde kullanılan değiştirme başvurularıdır: - $1, $2, ..., $99: ilgili yakalama grubunun içeriği. - $&: eşleşmenin tamamı. - $`: eşleşmeden önceki metin. - $': eşleşmeden sonraki metin. - $<name>: adlandırılmış grubun (?<name>...) içeriği. Örnek: (\w+)\s(\w+) “hello world” ile eşleşirse, $2-$1 değiştirmesi “world-hello” üretir. Değiştirme metnine gerçek bir $ eklemek için $$ yazın.
Regex motorları diller arasında özellikle üç noktada değişir: 1. Sözdizimi desteği: JavaScript, PCRE recursion (?R), koşullu dallar (?(cond)yes|no) veya atomic group (?>...) desteklemez. Python re modülü de desteklemez; üçüncü taraf regex modülü bazılarını destekler. Java atomic group destekler, recursion desteklemez. 2. Unicode: JavaScript’te \w çoğunlukla temel Latin harfleri, rakamlar ve alt çizgiyle eşleşir. u bayrağını açmak onu otomatik olarak Çince karakterlerle eşleştirmez. Unicode harfleri için \p{L} gibi property escape’leri u bayrağıyla kullanın. 3. Satır sonları: Python’da . varsayılan olarak \n ile eşleşmez; JavaScript de böyledir. Java Pattern.DOTALL, JavaScript s bayrağına benzer. Bu araçla JavaScript RegExp’i hızlıca doğrulayın, son onayı hedef dilin gerçek motorunda yapın.