← Tüm araçlar

Regex Test Aracı

Tarayıcıda kendi metninize karşı düzenli ifadeler oluşturun, test edin ve hata ayıklayın. Karakter sınıfları, niceleçler, bağlayıcılar, gruplar ve bayrakları öğrenin.

Regex Tester: kalıpları kendi metninize karşı oluşturun ve hata ayıklayın

Düzenli ifade, metnin şeklini tanımlamak için kullanılan küçük bir dildir. "Bu tam kelime burada var mı?" diye sormak yerine, bir regex "buna benzeyen bir dize var mı?" diye sormanızı sağlar. Bu, onu kod düzenleyicilerde, günlük dosyalarında, form girdilerinde ve betiklerde metin bulmak, doğrulamak, ayıklamak ve değiştirmek için güçlü kılar. Ayrıca hata yapmayı da kolaylaştırır; çünkü kafanızda doğru okunan bir kalıp çok fazlasını, çok azını veya hiçbir şeyi sessizce eşleştirebilir.

Bu nedenle etkileşimli test etmek, tahmin etmekten çok daha iyidir. Bir kalıp yazıp eşleşmelerin gerçek örnek metin üzerinde aydınlandığını gördüğünüzde anında geri bildirim alırsınız: neyin yakalandığını, neyin kaçtığını ve hangi yakalama grubunun hangi parçayı aldığını görürsünüz. Regex Tester'ımız tamamen tarayıcınızda çalışır. Kalıbınız ve örnek metniniz asla sayfadan ayrılmaz; dolayısıyla günlük satırlarını, e-postaları veya üretim verilerini bir sunucuya göndermeden yapıştırabilirsiniz.

Koyu indigo arka planda akan veri akışından parlak siyan filtrenin belirli altın token'ları yakalaması
Bir regex, yalnızca kalıbınızla eşleşen token'ları seçen bir filtre gibi davranır.

Bilmeye değer yapı taşları

Günlük kullanılan kalıpların çoğu küçük bir parça kümesinden oluşturulur. Bunları öğrenin ve karşılaştığınız regex'lerin büyük çoğunluğunu okuyabilirsiniz.

Karakter sınıfları, izin verilen karakterlerin bir kümesini tanımlar. [aeiou] herhangi bir tek ünlüyle, [0-9] bir rakamla, [a-zA-Z] bir harfle eşleşir. Köşeli parantezlerin içindeki bir şapka işareti kümeyi olumsuzlar; [^0-9] "rakam olmayan herhangi bir karakter" anlamına gelir. Kısaltmalar yazıyı kısaltır: \d rakam, \w kelime karakteri (harfler, rakamlar, alt çizgi), \s boşluk ve nokta . neredeyse herhangi bir tek karakterle eşleşir.

Niceleyiciler, önceki parçanın kaç kez tekrarlanabileceğini belirtir. * sıfır veya daha fazla, + bir veya daha fazla, ? sıfır veya bir (isteğe bağlı) anlamına gelir. Tam sayılar için {3} tam olarak üç ve {2,4} iki ile dört arasında anlamına gelir. Dolayısıyla \d{4} dört basamaklı bir yılla ve colou?r her iki yazımla eşleşir.

Çapalar, bir kalıbı karakter yerine bir konuma sabitler. ^ metnin başıyla, $ sonuyla ve \b bir kelime sınırıyla eşleşir. ^Error kalıbı yalnızca "Error" ile başlayan satırlarla eşleşir; günlükleri tarerken tam istediğiniz budur.

Gruplar, kalıbın bir bölümünü parantez içine sararak hem bir niceleyiciyi birden fazla karaktere uygulamak hem de eşleşen metni yeniden kullanmak için yakalar. (\d{4})-(\d{2})-(\d{2}) içinde her grup daha sonra çıkarabileceğiniz bir tarih bileşenini yakalar. Pipe ile kullanılan alternasyon "veya" gibi davranır: cat|dog|fish üç kelimeden herhangi biriyle eşleşir.

Gerçekte başvuracağınız kalıplar

Birkaç tekrar eden iş, gerçek çalışmanın büyük çoğunluğunu kapsar. E-posta benzeri bir şeyi yakalamak için [\w.+-]+@[\w-]+\.[\w.-]+ pragmatik bir başlangıç noktasıdır; resmi spesifikasyona göre tam e-posta doğrulaması son derece karmaşıktır ve kullanıcıları reddetmek yerine adayları vurgulamak için gevşek bir kalıp genellikle doğru tercihtir.

Sayılar için \d+ basamak dizilerini yakalar; -?\d+(\.\d+)? ise isteğe bağlı negatif ve ondalık kısmı eşleştirir. Baştaki ve sondaki boşlukları kesmek için ^\s+|\s+$'ı eşleştirip hiçbir şeyle değiştirin. Tekrarlanan kelimeleri bulmak için \b(\w+)\s+\1\b geri başvuru kalıbı, \1'in ilk yakalama grubuna geri başvurduğu bir kelimeyi ardından kendisiyle eşleştirir.

Koyu lacivert arka planda siyan metin benzeri parçacıklardan oluşan akan bir ırmakta altın rengiyle parlayan ve vurgulanan seçili kelimeler
Canlı vurgulama, metninizin tam olarak hangi bölümlerinin bir kalıpla eşleştiğini gösterir.

Bayraklar eşleşmenin davranışını değiştirir

Bayraklar, tüm kalıbı değiştiren anahtarlardır. Global bayrağı (g), ilkinde durmak yerine her eşleşmeyi bulur; tüm oluşumları vurgulamak istediğinizde bunu kullanırsınız. Büyük/küçük harfe duyarsız bayrağı (i), error'ın hem "Error" hem de "ERROR" ile eşleşmesini sağlar. Çok satırlı bayrak (m), ^ ve $'ı yalnızca tüm metnin başı ve sonuyla değil, her satırın başı ve sonuyla eşleşecek şekilde değiştirir; satır satır günlük çalışması için zorunludur. Diğer kullanışlı bayraklar arasında s (dotall, noktanın yeni satırlarla eşleşmesine izin verir) ve tam Unicode işleme için u bulunur.

Çeşniler dile göre biraz farklılaşır

Regex, tek bir sabit standart değil, bir lehçeler ailesidir. JavaScript, Python, PCRE (PHP), Java, .NET, Go ve Rust yukarıdaki temel sözdizimi üzerinde hemfikirdir; ancak kenarlarda birbirinden ayrılır: lookbehind desteği, adlandırılmış grup sözdizimi ((?<name>...) ile (?P<name>...)), Unicode özellik kaçışları ve hangi bayrakların var olduğu farklılık gösterir. Bir motordu çalışan bir kalıp, diğerinde küçük bir düzenleme gerektirebilir; dolayısıyla gerçekten kullandığınız çeşniye karşı test etmek önemlidir. Bir kalıbı ayarladıktan sonra, az önce eşleştirdiğiniz verileri temizleme, kodlama ve dönüştürme konusundaki çevreleyen çalışma için diğer geliştirici araçlarımız ve metin araçlarımız yardımcı olabilir.

Sıkça sorulan sorular

Metnim bir sunucuya gönderiliyor mu?

Hayır. Regex Tester tamamen tarayıcınızda çalışır. Kalıbınız ve örnek metniniz cihazınızda kalır, asla yüklenmez; dolayısıyla hassas veri yapıştırmak güvenlidir.

Bu araç hangi regex çeşnisini kullanır?

Tarayıcınıza yerleşik JavaScript regex motorunu kullanır. Temel sözdizimi çoğu dilden bildiğinizle eşleşir; ancak bazı gelişmiş özellikler PCRE, Python veya .NET'ten biraz farklıdır.

Açgözlü ve tembel eşleştirme arasındaki fark nedir?

Varsayılan olarak niceleyiciler açgözlüdür ve mümkün olduğunca fazla metin yakalar. Bir soru işareti eklemek onları tembel yapar; bu sayede mümkün olduğunca az yakalarlar. Örneğin nokta yıldız açgözlü, nokta yıldız soru işareti ise tembeldir.

Gerçek bir özel karakteri nasıl eşleştiririm?

Bir ters eğik çizgiyle kaçış yapın. Gerçek bir noktayı eşleştirmek için ters eğik çizgi nokta yazın. Aynı durum parantezler, köşeli parantezler, artı işareti ve soru işareti gibi diğer meta karakterler için de geçerlidir.

Kalıbım neden hiçbir şeyle eşleşmiyor?

Yaygın nedenler arasında eksik global bayrak, eşleşmeyi yanlış konuma sabitleyen çapalar, kaçışlanmamış özel bir karakter veya beklediğiniz sınırı aşan açgözlü niceleyiciler sayılabilir. Suçluyu bulmak için parça parça test edin.

Eşleşmenin parçalarını yakalayabilir miyim?

Evet. Bir yakalama grubu oluşturmak için kalıbın bir bölümünü parantez içine alın. Her grup ayrı ayrı raporlanır; bu sayede bir tarihten yıl, ay ve gün gibi alanları çıkarabilirsiniz.