Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

Ana içeriğe geç
Gizke.com
Blog

Regex Test Aracı

Cihazınızda çalışır. Hiçbir şey gönderilmez.

Bayraklar

Yaygın desenler

Test metni

Eşleşme bulunamadı

Açıklama

Her parçanın ne yaptığını görmek için yukarıya bir desen yazın

JavaScript düzenli ifadelerini (regex) canlı eşleşme vurgulamasıyla tamamen tarayıcınızda test edin, açıklayın ve hata ayıklayın.

Düzenli ifade (regex), metni eşleştirmek, bulmak veya değiştirmek için kullanılan bir desendir - kod editörlerindeki bul-değiştir işlevinin, form doğrulamanın ve log ayrıştırmanın arkasındaki temel araçtır. Bu test aracı, JavaScript'in yerel regex motorunu doğrudan tarayıcınızda çalıştırır: bir desen ve bir test metni yazın, o da her eşleşmeyi vurgular, yakalama gruplarını ayırır, değiştirmeleri önizler ve desenin her parçasının ne yaptığını sade bir dille açıklar. Yazdığınız hiçbir şey herhangi bir yere yüklenmez.

Sık sorulan sorular

Bu araç hangi regex türünü kullanıyor?
JavaScript'in yerleşik regex motorunu (RegExp ve String.prototype.match/replace'in arkasındaki motor) kullanır, çünkü buradaki her şey bir sunucuda değil, tarayıcınızda istemci tarafında çalışır. PCRE'ye çok yakındır ama birkaç farkı vardır - örneğin lookbehind desteği motor sürümüne bağlıdır ve isimli gruplar (?<isim>...) söz dizimini kullanır.
Neden desenim sadece bir kez eşleşiyor?
Varsayılan olarak, g (genel) bayrağı olmadan bir regex ilk eşleşmesinden sonra durur - bu, JavaScript'te RegExp.exec() ve String.match()'in gerçekte nasıl davrandığını yansıtır. Test metnindeki sadece ilk eşleşmeyi değil, hepsini bulmak için yukarıdan g bayrağını etkinleştirin.
(...) ile (?:...) arasındaki fark nedir?
İkisi de desenin parçalarını bir araya getirir, ancak yalnızca (...) - bir yakalama grubu - eşleştirdiği şeyi kaydeder, böylece daha sonra ona başvurabilirsiniz (bir değiştirmede $1, $2, ... olarak veya eşleşmenin grup listesinde). (?:...) yakalamasız bir gruptur: gruplama yapar ve niceleyicileri uygular ama eşleşmeyi saklamaz; gruplamaya ihtiyacınız olup yakalanan metinle ilgilenmediğinizde kullanışlıdır.
İsimli gruplar ve $<isim> değiştirmeleri nasıl çalışır?
Bir grubu numara yerine bir isim altında yakalamak için (...) yerine (?<isim>...) yazın. Değiştir modunda, değiştirme metninde $<isim> olarak ona başvurun - örneğin, (?<yil>\d{4})-(?<ay>\d{2}) deseni $<ay>/$<yil> ile değiştirildiğinde grup numaralarını hatırlamaya gerek kalmadan bir tarihi yeniden düzenler.
+ ile +? gibi açgözlü (greedy) ve tembel (lazy) bir niceleyici arasındaki fark nedir?
Açgözlü bir niceleyici (+, *, {2,4}) mümkün olduğunca çok eşleşir, ardından desenin geri kalanının eşleşmesine izin vermek gerekirse geri çekilir. Aynı sembolün ardından ? gelen tembel bir niceleyici ise bunun yerine mümkün olduğunca az eşleşir ve yalnızca gerektiğinde bir karakter daha genişler. Örneğin, <.+>, <a><b> karşısında açgözlü şekilde tüm <a><b>'yi eşleştirirken, <.+?> tembel şekilde yalnızca <a>'yı eşleştirir.
İleriye/geriye bakış (lookahead/lookbehind) hiçbir karakteri tüketmiyorsa, aslında ne kontrol eder?
Bir desenin, eşleşmenin kendisine dahil edilmeden, geçerli konumun hemen öncesinde veya sonrasında görünüp görünmediğini test ederler - yani (?=...) ve (?<=...), orada bulunması gereken bir şeyi ileriye/geriye doğru kontrol ederken, (?!...) ve (?<!...) orada bulunmaması gerektiğini kontrol eder. Bu yüzden bir sayıyı yalnızca ardından 'px' geldiğinde eşleştirmek için \d+(?=px) kullanabilirsiniz; 'px' kendisi eşleşen metinde hiçbir zaman görünmez.
Geliştiriciler için: bu sayfayı URL'de `q` (kalıp) ve `text` (test metni) parametreleriyle açarsanız - örn. gizke.com/regex?q=\d+&text=There are 42 apples - her ikisi de otomatik olarak önceden doldurulur. Çoğu ziyaretçinin buna ihtiyacı yoktur; kullanıma hazır bir örneğe doğrudan bağlantı vermek içindir.

Bu aracı paylaş

BlogHakkımızdaİletişimKullanım KoşullarıGizlilik Politikası