Regex Test Aracı
Desen: henüz bir şey yazılmadı.
Hız: desen yazılınca ölçülecek.
Denetim raporu
Desen ve metin girilince eşleşmeler burada listelenir.
Seçili bayraklar
Soldaki değiştirme metni uygulandığında sonuç:
Deseniniz ve metniniz tarayıcınızdan çıkmaz.
i bayrağını açtım, neden İSTANBUL ile istanbul eşleşmiyor?
Çünkü harf duyarsız eşleşme Türkçenin i harflerini bilmiyor. Büyük küçük harf eşlemesi dilden bağımsız bir tabloya göre yapılıyor ve o tabloda i harfinin büyüğü I, I harfinin küçüğü i. Türkçede ise i harfinin büyüğü İ, ı harfinin büyüğü I. Sonuç: /istanbul/i deseni İSTANBUL metnini bulamıyor, /ışık/i deseni ISIK metnini bulamıyor, ama /ilik/i deseni ILIK metnini buluyor. Bu araç deseninizde i, ı, İ veya I harfi varken i bayrağı açıksa uyarı veriyor. Çözüm: metni karşılaştırmadan önce Türkçe kurallarına göre küçültmek veya iki yazımı desende ayrı ayrı belirtmek.
Deseni Türkçe metinde çalıştırdım, kelimeyi ortasından kesti. Neden?
Kelime kaçışı kullandınız ve o kaçış yalnızca İngiliz alfabesindeki harfleri, rakamları ve alt çizgiyi kapsıyor. Ölçülebilir örnek: Şanlıurfa kelimesinde kelime kaçışı yalnızca anl parçasını yakalıyor, dokuz harfin altısı dışarıda kalıyor. Unicode bayrağını açmak da bunu düzeltmiyor. Türkçe harfleri kapsayan karşılığı Unicode harf özelliğidir ve o da yalnızca u bayrağı açıkken çalışır. Aynı sorun köşeli parantez içindeki a ile z arası yazımında da var: Şanlıurfa kelimesi o denetimden geçemiyor, Sanliurfa geçiyor.
Hız satırında ne yazıyor, desenim neden kilitleniyor?
Bazı desenler eşleşmeyen bir girdide, o girdiyi bölmenin bütün yollarını tek tek deneyerek takılır ve girdi uzadıkça süre katlanır. Şekli bellidir: bir niceleyicinin içinde, aynı karakterleri eşleyebilen ikinci bir niceleyici. Bu araç deseninizde o şekli bulduğunda deseni gerçekten çalıştırıp süreyi ölçüyor: uzunluğu artan saldırı girdileri üretiyor ve her adımın kaç milisaniye sürdüğünü yazıyor. Şekil var ama ölçümde yavaşlama yoksa bunu da açıkça söylüyor, çünkü şekil tek başına suçlamak için yeterli değil.
Sayfa neden donmuyor?
Deseniniz sayfanın kendisinde değil, ayrı bir çalıştırıcıda koşuyor. Belirlenen süre içinde sonuç dönmezse çalıştırıcı durduruluyor ve size kilitlendiği söyleniyor. Yazdığınız desen kendi sekmenizi kilitleyemiyor. Bu, bir desenin yavaş olduğunu gösteren en dürüst kanıt: sonuç veremediği için durdurulmuş olması.
Test kümesi ne işe yarıyor?
Bir deseni yalnızca eşleşmesi gereken metinlerle denemek yanıltıcıdır, asıl soru eşleşmemesi gerekenleri gerçekten reddedip etmediğidir. Test kümesine istediğiniz kadar satır ekleyip her birini eşleşmeli veya eşleşmemeli diye işaretliyorsunuz, desen değiştikçe hepsi yeniden koşuyor ve kaç satırın geçtiğini görüyorsunuz. Doğrulama deseni yazarken geçersiz örnekleri de listeye koyun; bir desenin nerede fazla cömert olduğu ancak böyle görünür.
Üstteki dil seçimi neyi değiştiriyor?
Regex tek bir dil değil, birbirinden ayrılan bir aileler topluluğu. Seçtiğiniz dile göre desendeki özellikler denetleniyor ve o dilde bulunmayan veya başka türlü yazılan yapılar listeleniyor: geriye bakışın desteklenip desteklenmediği, isimli grubun yazımı, atomik grup, iyelik niceleyici, satır içi bayrak, geri referans, metin başı ve sonu çapaları. Eşleştirme yine tarayıcının motorunda yapılıyor, bu yüzden dil seçimi desenin nerede çalışmayacağını söyler, o dilin motorunu taklit etmez. Bu ayrımı saklamıyoruz çünkü sonucu yorumlamanız buna bağlı.
TC kimlik ve IBAN kalıpları numaranın doğruluğunu kontrol ediyor mu?
Hayır, yalnızca biçimi kontrol ediyor. TC kimlik numarasının son iki hanesi önceki hanelerden hesaplanan bir doğrulama değeridir, IBAN'ın üçüncü ve dördüncü hanesi de mod 97 ile hesaplanır. Bunlar aritmetik işlemdir ve regex aritmetik yapamaz. Yani bu kalıplar yanlış yazılmış bir numarayı yakalar, uydurulmuş ama biçimi doğru bir numarayı yakalamaz. Hesabı kodunuzda yapmanız gerekir. Her kalıbın altında neyi kontrol ettiği ve neyi kontrol edemediği yazıyor.
Kalıp kütüphanesindeki e-posta deseni com.tr adreslerinde çalışıyor mu?
Evet, alan adının kaç parçadan oluştuğuna bakmıyor. Yaygın yazılan kısa e-posta desenleri uzantı kısmını tek parça beklediği için info@firma.com.tr adresini info@firma.com diye kesiyor ve bunu fark etmek zor oluyor. Buradaki desen nokta ile ayrılmış ara parçalara izin veriyor, bu yüzden com.tr ve co.uk adreslerini bütün olarak eşliyor. Yine de hiçbir e-posta deseni adresin gerçekten var olduğunu kanıtlamaz, bunu ancak o adrese gönderilen doğrulama postası gösterir.
Desenim neden hiç eşleşmiyor?
En sık üç sebep var. Birincisi kaçırılmamış özel karakter: nokta, soru işareti, artı ve parantez desende kendi anlamlarını taşır, harfi harfine aramak için başlarına ters bölü koymanız gerekir. İkincisi çapa: şapka ve dolar işareti varsa metnin tamamı eşleşmek zorundadır, parçası yetmez. Üçüncüsü bayrak: g bayrağı kapalıyken yalnızca ilk eşleşme bulunur, i bayrağı kapalıyken büyük küçük harf farkı önemlidir. Sağdaki Açıklama sekmesi desenin her parçasının ne aradığını Türkçe yazıyor, hangi parçanın beklediğinizden başka bir şey aradığını orada görürsünüz.
Değiştirme kutusunda grupları nasıl kullanırım?
Desende parantez içine aldığınız her parça bir grup oluşturur ve değiştirme metninde dolar işareti ile numarasını yazarak o parçayı geri koyabilirsiniz: ilk grup için dolar bir, ikinci grup için dolar iki. Tarihi 15.09.2026 biçiminden 2026-09-15 biçimine çevirmek isterseniz üç parçayı gruplayıp değiştirmede sırayı değiştirmeniz yeterli. İsimli grup kullandıysanız değiştirmede süslü parantezli yazımıyla çağırabilirsiniz. Sonuç anında sağdaki Değiştirme sekmesinde görünür, metniniz değişmez.
Ne kadar büyük metin verebilirim?
Metin kutusuna sınır koymadık, sınırı tarayıcınızın belleği belirliyor. Eşleşme listesinde ilk üç yüz eşleşme ayrıntılı gösteriliyor, vurgulama iki bin eşleşmeye kadar yapılıyor, toplam eşleşme sayısı beş binde durduruluyor; bunlar sayfanın akıcı kalması için konulmuş sınırlar ve hangisine takıldığınız ekranda yazıyor. Her çalıştırma zaman sınırına tabidir, süre dolarsa durdurulur.
Desenim ve metnim sunucuya gidiyor mu?
Hayır. Deseni okuma, eşleştirme, açıklama, hız ölçümü, test kümesi ve değiştirme işlemlerinin tamamı tarayıcınızın içinde yapılıyor. Yazdıklarınız hiçbir yere gönderilmiyor ve hiçbir yere kaydedilmiyor; sayfayı kapattığınızda gider. Günlük dosyası, üretim verisi veya müşteri bilgisi içeren bir metni denemekte sakınca yok.