Regex Test Aracı

JavaScript regex deseninizi metin üzerinde deneyin. Bayrakları seçin, eşleşen parçaları ve grupları inceleyin, sonucu kopyalayın.

Deseni metninizde deneyin

JavaScript regex motoru kullanılır. Deseni dıştaki / işaretleri olmadan yazın; bayrakları ayrı alana girin.

En fazla 1.000 karakter. Boş desen de geçerlidir ve sıfır uzunluklu eşleşme üretir.

g: tüm eşleşmeler, i: harf boyutunu yok say, m: çok satır, s: nokta satır sonunu kapsar, u veya v: Unicode, d: grup indisleri, y: mevcut konumdan eşleşme. Bayraklar tekrarlanamaz; u ve v birlikte kullanılamaz.

En fazla 50.000 karakter. 0 / 50.000

En fazla 1.000 eşleşme gösterilir. Uzun süren aramalar 1,5 saniyelik süre sınırıyla durdurulur. Metinler sunucuya gönderilmez.

Regex eşleşmeleri

Test etmeye hazır

Desen ve metni hazırlayıp Test et düğmesine basın.

Bir regex testinde yalnızca eşleşme sayısına bakmayın

Regex test aracı, yazdığınız düzenli ifadenin metinde hangi parçaları bulduğunu gösterir. JavaScript regex test sonucunda eşleşen metni, başlangıç ve bitiş konumlarını, varsa yakalama gruplarını birlikte inceleyebilirsiniz. Bir desenin “eşleşti” cevabı vermesi, istediğiniz parçanın tamamını yakaladığı anlamına gelmez. Önizleme, fazla geniş veya eksik eşleşen desenleri fark etmeyi kolaylaştırır.

Desen alanına arama kuralını, bayrak alanına davranışı değiştiren harfleri, test metnine de üzerinde çalışacağınız örneği yazın. Test et düğmesiyle aramayı başlatın. Girdilerden birini değiştirmek eski sonucu temizler; yeni sürümü yeniden çalıştırmanız gerekir. Böylece önceki desenin sonucu yeni metne aitmiş gibi görünmez.

Kod ve numara gruplarını ayıran bir örnek

(?<kod>TR)-(?<no>\d{3}) desenini gd bayrakları ve TR-042 ve TR-105 metniyle deneyin. İki tam eşleşme bulunur. kod adlı grup ülke kodunu, no adlı grup üç basamaklı numarayı ayırır. d, grupların konumlarını da rapora ekler.

EşleşmeKonumkod grubuno grubu
TR-042[0, 6)TR, [0, 2)042, [3, 6)
TR-105[10, 16)TR, [10, 12)105, [13, 16)

[0, 6) ifadesinde başlangıç 0 dahil, bitiş 6 hariçtir. İlk eşleşmenin uzunluğu 6 birimdir. İndisler JavaScript dizelerindeki UTF-16 konumlarını kullanır; ekranda tek sembol gibi görünen bazı karakterler iki birim kaplayabilir. Bu konumlar metni kod içinde keserken kullanılacak indislerle uyumludur.

MDN RegExp.exec açıklaması, tam eşleşmenin yanında grupların, başlangıç indisinin ve d ile grup aralıklarının nasıl döndüğünü gösterir. Araç bu bilgileri okunabilir bir rapora dönüştürür. Eşleşmeyen isteğe bağlı bir grup null, gerçekten boş metin yakalayan grup ise "" olarak gösterilir.

Bayrakları değiştirince arama nasıl değişir?

g kapalıyken yalnızca ilk eşleşme aranır. Açıkken metindeki sonraki eşleşmelere devam edilir. i büyük ve küçük harf farkını yok sayar; ancak Türkçe diline özel bir karşılaştırma ayarı değildir. m, ^ ve $ işaretlerini satır başlangıcı ve sonu için de kullanır. s ise noktanın satır sonu karakterlerini de eşleştirmesini sağlar. m ile s aynı işi yapmaz.

u Unicode kod noktası davranışını etkinleştirir. v daha gelişmiş Unicode küme özellikleri sağlar; ikisi aynı anda kullanılamaz. y, aramayı mevcut konuma bağlar. Bu araçta başlangıç konumu sıfırdır. Örneğin a deseni, gy bayraklarıyla a a metninde ilk harfi bulur, sonraki boşlukta durur; aradaki boşluğu atlayıp ikinci harfe gitmez. Bayrakların kapsamı MDN düzenli ifadeler rehberinde açıklanır.

Boş eşleşme ile hiç eşleşme olmaması farklıdır

Boş bir desen veya ^ gibi konum bildiren bir ifade, hiç karakter tüketmeden eşleşebilir. Bu durumda sonuç listesinde başlangıç ve bitiş aynı olur; önizlemede [boş] işareti görünür. Örneğin boş desen, g bayrağı ve ab metni için 0, 1 ve 2 konumlarında üç boş eşleşme verir. Bu, “0 eşleşme” sonucu değildir.

Arama aynı boş konumda takılı kalmamak için sonraki konuma ilerler. Unicode modunda, iki UTF-16 biriminden oluşan bir karakterin ortasına atlamak yerine o karakterin tamamını geçer. Bu ilerleme kuralı ECMAScript AdvanceStringIndex işlemi ile uyumludur. Boş eşleşmeleri kaldırmak istiyorsanız * ve ? gibi sıfır karaktere izin veren parçaları gözden geçirin.

Süre aşımı veya kısaltılmış sonuç ne anlatır?

Bazı desenler kısa bir metinde hızlı çalışırken daha uzun ve sonu eşleşmeyen bir metinde çok sayıda olasılığı deneyebilir. Araç eşleşmeyi sayfanın ana işlemi dışında bir Worker içinde yürütür. Arama 1,5 saniyelik süre sınırını aşarsa işlem sonlandırılır. Worker terminate belgesi, bu işlemin çalışan görevi tamamlamasını beklemeden durdurduğunu açıklar. Süre aşımı, desenin sözdiziminin mutlaka yanlış olduğunu veya hiç eşleşme olmadığını söylemez.

Giriş sınırı desen için 1.000, metin için 50.000 UTF-16 birimidir. Arama 1.000 eşleşmeye ulaşınca devam etmez; toplamın kesinlikle 1.000 olduğu iddia edilmez. Ayrıntılarda tek bir metin değeri en fazla 2.000 birim, tüm değerler toplamda en fazla 200.000 birim gösterilir. Bir eşleşmede numaralı ve adlı gruplar ayrı ayrı en fazla 40 kayıtla, rapor genelinde toplam 2.000 grup kaydıyla sınırlıdır. Kısaltılan metinlerin gerçek uzunluğu ve gösterilmeyen grup sayısı raporda kalır.

Tarih, adres ve başka diller için kapsamı kontrol edin

^\d{4}-\d{2}-\d{2}$ deseni bir tarih yazımının dört, iki ve iki basamaklı bölümlerini denetler. 2026-02-31 metni bu desene uyar; buna rağmen takvimde geçerli bir tarih değildir. Benzer biçimde ^https?://, yalnızca başlangıcın HTTP veya HTTPS biçiminde olup olmadığını sınar; adresin tamamını ya da erişilebilirliğini doğrulamaz. Regex eşleşmesiyle uygulamanın gerçek doğrulama kuralını ayrı değerlendirin.

Bu sayfa tarayıcınızın JavaScript motorunu kullanır. PHP, Python, C, grep, SQL veya htaccess kurallarında sözdizimi, Unicode davranışı ve bayraklar farklı olabilir. Bir deseni burada denemek o ortamlardaki sonucu doğrulamaz. Özellikle yeniden yazma ve metin değiştirme işlemleri bu aracın kapsamına girmez; sonucu kullanacağınız ortamda ayrıca sınayın.

Sık sorulan sorular

Deseni / işaretleriyle mi yazmalıyım?

Desen alanına yalnızca desen gövdesini yazın. Örneğin JavaScript içindeki /abc/gi ifadesi için desen abc, bayraklar gi olmalıdır. Buradaki alana yazılan dış / işaretleri otomatik çıkarılmaz; desenin parçası kabul edilir.

JavaScript test() bazen neden true, bazen false döndürür?

g veya y bayraklı aynı RegExp nesnesi tekrar kullanıldığında lastIndex değeri sonraki aramanın başlangıcını etkiler. Bu nedenle aynı metinde arka arkaya test() çağrıları farklı sonuç verebilir. Burada her Test et işlemi yeni bir nesneyle sıfırdan başlar; önceki testin lastIndex değeri taşınmaz.

Türkçe harfler için [a-z] veya \w yeterli mi?

Bütün Türkçe harfleri kapsamak için bu sınıflara güvenmeyin. Unicode harflerini kapsayan \p{L} ifadesini u veya v bayrağıyla deneyebilirsiniz. Yalnız Türkçe alfabenin kabul edilmesi gerekiyorsa izin verdiğiniz harfleri açıkça tanımlayın; \p{L} başka alfabelerin harflerini de kapsar.

Eşleşen metni başka bir metinle değiştirebilir miyim?

Bu araç eşleşme ve grup incelemesi yapar; yerine koyma işlemi uygulamaz. Kopyalanan çıktı, eşleşme raporudur. JavaScript replace(), PHP preg_replace veya SQL regex_replace sonuçlarını taklit etmez.

v veya d bayrağında neden hata alıyorum?

Kullanılabilen regex özellikleri tarayıcınızın JavaScript motoruna bağlıdır. Desteklenmeyen bir bayrak ya da desen sözdizimi derleme hatası verir. Ayrıca u ve v birlikte kullanılamaz, aynı bayrak iki kez yazılamaz. d bayrağı desteklendiğinde yakalanan grupların başlangıç ve bitiş indisleri de raporda bulunur.

Metnimdeki HTML veya JavaScript kodu çalışır mı?

Test metni çalıştırılmaz; eşleşmeler ve önizleme düz metin olarak gösterilir. Desen, tarayıcının regex motorunda değerlendirilir. Metinler ve desenler hesaplama için sunucuya gönderilmez. Sonucu kopyalarsanız panodaki rapor eşleşen metin parçalarını içerebilir.