Skip to content

Ücretsiz Regex Tester — İfadeleri Çevrimiçi Sınayın

Düzenli ifadeleri herhangi bir metne karşı anında test edin. Canlı eşleşme vurgulama, yakalama grupları, değiştirme önizlemesi, bölme ve desen açıklayıcı. JavaScript lehçesi regex, %100 gizli, çevrimiçi, ücretsiz, kayıt yok.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Tüm test işlemi tarayıcınızda yerel olarak çalışır. Deseniniz ve metniniz bu cihazdan asla ayrılmaz.
Bayraklar
Vurgulanan eşleşmeler
Eşleşmeler ve yakalama grupları
ECMA-262 doğruluğu, yakalama grubu doğruluğu (/d bayrağıyla ve onsuz), String.prototype.replace ile değiştirme şablonu eşliği, duvar saati bütçelemesi yoluyla ReDoS direnci ve erişilebilirlik (ARIA rolleri, ekran okuyucu eşleşme duyuruları, RTL/LTR işleme) için incelenmiştir. — Go Tools Metin Araçları Ekibi · May 21, 2026

Regex Test Aracı Nedir?

Bir regex test aracı (düzenli ifade test aracı), bir regex deseni yazmanıza, bir test metni parçası yapıştırmanıza ve desenin tam olarak neye eşleştiğini görmenize olanak tanıyan bir araçtır — yakalama grupları, değiştirme önizlemesi ve bir bayrak ayrıntısı ile — kodu yeniden derlemeden veya bir betik çalıştırmadan. Geliştiriciler için, döngüyü dakikalardan milisaniyelere kısaltır: deseni ayarla, vurguların hareket etmesini izle, regex'i güvenle gönder.

Düzenli ifade, metin desenlerini tanımlamak için kompakt bir dildir. `\d+` bir veya daha fazla rakama eşleşir. `[A-Za-z_]\w*` tipik bir tanımlayıcıya eşleşir. `(?\d{4})-(?\d{2})-(?\d{2})` bir ISO tarihine eşleşir ve her parçayı adlandırır. Düzenli ifadeler her kod düzenleyicideki ara-değiştir özelliğinin, her formdaki doğrulamanın, her gözlemlenebilirlik yığınındaki günlük ayrıştırmanın ve internetin yarısının üzerinde çalıştığı Unix araçları `grep`, `sed` ve `awk` çekirdeğidir. Ayrıca doğru yazmak da olağanüstü zordur: bir off-by-one niceleyici veya eksik bir kaçış yanlış alt dize ile eşleşebilir, bir eşleşmeyi tamamen kaçırabilir veya — en kötü durumda — bir CPU çekirdeğini rehin alan felaket geri izlemeyi tetikleyebilir. İyi bir regex test aracı, bu başarısızlık modlarının her birini üretime ulaşmadan önce yakalar.

Bu test aracı, her modern tarayıcıyla birlikte gelen yerel ECMA-262 RegExp motorunu çalıştırır — JavaScript, TypeScript, Node.js, Deno veya Bun'dan çağırdığınız aynı motor. Bunun anlamı: yakalama grupları (numaralandırılmış ve `(?...)` ile adlandırılmış), ileri bakış ve geri bakış iddiaları (`(?=...)`, `(?!...)`, `(?<=...)`, `(?

Test aracının ham eşleşmelerin ötesinde yüzeylendirdiği şeyler: Eşleşmeler ve yakalama grupları paneli her eşleşmeyi [start, end) ofsetleri ve her yakalama grubunun değeriyle listeler — /d bayrağıyla `String.prototype.matchAll`'dan alacağınız aynı bilgi, ancak görsel tarama için düzenlenmiş. Değiştir sekmesi tam $1 / $& / $` / $' / $$ / $ şablon alfabesini destekleyen canlı bir değiştirme önizlemesi gösterir — tam olarak JavaScript'in String.replace'ın kabul ettiği. Böl sekmesi regex ile String.split uygular ve her parçayı gösterir. Açıkla sekmesi deseni belirteçlere ayırır ve her parçayı düz İngilizce ile etiketler; kod incelemesi, öğretim ve lehçeler arası taşıma için kullanışlıdır.

Gizlilik için: her işlem yereldir. Deseniniz ve test metniniz sayfadan asla ayrılmaz — kaydedilmez, bir analiz hizmetine gönderilmez, diske kaydedilmez. Yalnızca arayüz tercihleriniz (etkin sekme + genellikle açık tuttuğunuz bayraklar) localStorage'a kalıcı olur. Bu, aracı kararartılmış günlük örnekleri, tescilli desenler, dahili yapılandırma ve veri şemanız hakkında ipuçları içeren desenler için güvenli kılar. regex101 gibi sunucu destekli test araçlarıyla karşılaştırıldığında, gizlilik ve gecikme hikâyesi kesinlikle daha iyidir; ödün, tek lehçeli destek (yalnızca JavaScript).

Regex'te yeniyseniz, Yaygın desenler aşağı açılır menüsü savaşta sınanmış başlangıçlarla birlikte gelir: e-posta adresi, URL, IPv4, UUID, onaltılık renk, ISO tarihi, ABD telefon numarası ve sondaki boşluğu kırpan bir desen. Birini yükleyin, sağlanan örnek metne karşı eşleşmeleri gözlemleyin, ardından motorun nasıl yanıt verdiğini hissetmek için deseni bir kerede bir karakter değiştirin. Regex destekli bir temizliğin öncesini/sonrasını karşılaştırmak istediğinizde bunu Metin Karşılaştırma aracıyla, girdiniz veya beklenen çıktınız JSON olduğunda JSON Biçimlendirici ile veya eşleştirdiğiniz dizeler URL kodlu olduğunda URL kodlayıcı ile eşleştirin.

// The pattern you build in this tester drops straight into JavaScript.
// Example: extract every ISO date from a string with named groups.

const pattern = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/g;
const text = 'shipped 2026-05-21, scheduled 2026-06-30';

for (const m of text.matchAll(pattern)) {
  console.log(m.groups.year, m.groups.month, m.groups.day);
  // → 2026 05 21
  // → 2026 06 30
}

// Same regex, used in a replace with $<name> templates:
text.replace(pattern, '$<day>/$<month>/$<year>');
// → 'shipped 21/05/2026, scheduled 30/06/2026'

// With the /d flag, every match carries [start, end] indices
// per capture group — the Matches panel uses this to paint offsets.
const p2 = /(?<year>\d{4})-(?<month>\d{2})/gd;
const m = [...text.matchAll(p2)][0];
m.indices.groups.year; // [8, 12]

Temel Özellikler

Canlı Eşleşme Vurgulama

Test metninizdeki her eşleşme, deseniniz ayrıştırılır ayrıştırılmaz ışıldar. Sırayla değişen renkler bitişik eşleşmeleri görsel olarak saymayı kolaylaştırır ve sonucun üstündeki sayı rozeti size tam toplamı söyler — Çalıştır düğmesi yok, 200 ms'nin üzerinde bir bekletme gecikmesi yok.

Yakalama Grupları Yan Paneli

Sağdaki Eşleşmeler ve yakalama grupları paneli her eşleşmeyi [start, end) ofsetleri, tam eşleşme metni ve içindeki her konumsal + adlandırılmış yakalama grubu ile bir kart olarak listeler. Adlandırılmış gruplar kendilerini $ olarak etiketler; böylece veriyi kodda nasıl tüketeceğinizle aynı şekilde okuyabilirsiniz.

$1 / $& / $ ile Canlı Değiştirme Önizlemesi

Değiştirmenizin gerçek zamanlı uygulanmasını görmek için Değiştir sekmesine geçin. Tam ECMAScript değiştirme alfabesi çalışır: konumsal için $1..$N, adlandırılmış için $, tüm eşleşme için $&, önek/sonek için $` ve $', hazır dolar için $$. Yan yana girdi ve çıktı panelleri tek tıklamayla kopyalanır.

Regex Sınırlarıyla Bölme

Böl sekmesi regex'inizle String.prototype.split çağırır ve her parçayı numaralandırılmış bir liste olarak gösterir. Boş parçalar ⏎ glifiyle oluşturulur; böylece motorun bitişik sınırlandırıcıları nasıl ele aldığını görebilirsiniz — CSV benzeri girdi temizliğinde hata ayıklama için kullanışlıdır.

Desen Açıklayıcı (Belirteç Belirteç)

Açıkla sekmesi deseninizi sınıfa göre renklendirilmiş çiplere belirteçlere ayırır (kaçış / niceleyici / karakter sınıfı / grup / sabit / alternasyon) ve her çipi tek satırlık bir açıklama ile etiketler. Göndermeden önce kendi regex'inizi kendinize geri okuyun; kod incelemesi veya öğretim için kullanın.

ReDoS Güvenli (Duvar Saati Zaman Aşımı)

Her eşleştirme çağrısı 250 milisaniyelik bir bütçeye sarılır. `(a+)+`, `(a|aa)+b` gibi klasik felaket geri izleme biçimleri ve derinden iç içe niceleyiciler, sekmeyi kilitlemek yerine bir Desen zaman aşımına uğradı uyarısıyla temiz bir şekilde durur — sayfa yanıt vermeye devam eder. Sunucu tarafı korumalı alan olmadan tespit.

Yaygın Desenler Kütüphanesi

Geliştiricilerin en çok ulaştığı sekiz desen için savaşta sınanmış başlangıçlar: e-posta, URL, IPv4, UUID v4, onaltılık renk, ISO tarihi, ABD telefon numarası ve sondaki boşluğu kırpma. Her biri eşleşen bir örnekle yüklenir, böylece uyarlamadan önce regex'in çalıştığını görürsünüz.

Kalıcı Bağlantı Paylaşımı (Yükleme Yok)

Bağlantıyı kopyala, deseni + bayrakları + örnek metni URL hash'ine kodlar (#p=…&f=gim&t=…). Tarayıcılar URL parçalarını isteklerde asla iletmez; böylece paylaşılan bir bağlantı durumunuzu alıcının makinesinde go-tools.org sunucularına dokunmadan yeniden üretir. Kendi kendine yeterli, denetim dostu.

%100 Gizli, Yalnızca Tarayıcı

Regex'iniz ve test metniniz cihazınızdan asla ayrılmaz. Ağ isteği yok, günlük yok, yazdıklarınız üzerinde analiz yok. DevTools → Ağ sekmesinde doğrulayın: yazdığınızda sıfır istek. Tescilli desenler, kararartılmış günlükler ve regex101'e yapıştırmayacağınız her metin için güvenli.

Çalışan Örnekler

Bir paragraftan her e-posta adresini çıkarın

[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g

Deseni /g bayrağı açıkken yapıştırın, test metnine bir paragraf bırakın; her e-posta vurgulu görünümde ışıldar. Sağdaki Eşleşmeler ve yakalama grupları paneli, her adresi [start, end) ofsetleriyle listeler — aynı regex'i grep, sed veya bir kod düzenleyiciye aktarırken kullanışlıdır.

Adlandırılmış gruplarla tarih parçalarını yakalayın

(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
/(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/g

ECMA-262 adlandırılmış grupları sağ panelde $, $, $ olarak görünür. Değiştir sekmesine geçin ve ISO tarihleri tek geçişte DMY biçimine dönüştürmek için $/$/$ deneyin — aynı numara her modern JS replace çağrısında çalışır.

$1 geri referanslarıyla bul/değiştir

(\w+) (\w+)
Değiştirme: $2, $1   →   Jack Doe → Doe, Jack

İki adsız yakalama grubu, $2, $1 değiştirme şablonu ve Değiştir sekmesi size canlı bir önizleme verir. $&, $`, $', $$ ve $ tamamen desteklenir — ECMAScript şartnamesindeki tam değiştirme alfabesi olduğundan kopyaladığınız çıktı, herhangi bir JS motorunda değiştirilmeden çalışır.

Satır satır sondaki boşlukları temizleyin

[ \t]+$
/[ \t]+$/gm

$ ifadesinin yalnızca girişin sonunda değil her satır sonunda sabitlenmesi için /g (global) ve /m (multiline) bayraklarını birleştirin. Boş değiştirme önizlemesiyle Değiştir sekmesi temiz bir fark gösterir: sondaki sekmeler ve boşluklar kaybolur, metin yerinde kalır. Aynı regex /s (dotAll) bayrağı kapalıyken, . karakterinin yeni satırları aşmasını engeller.

Felaket geri izlemeyi tespit edin ve hayatta kalın

(a+)+b
Test metni: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac

İç içe + niceleyicileri klasik bir ReDoS deseni oluşturur. Saf bir test aracında bu, sekmeyi kilitler. Burada duvar saati koruması 250 ms sonra tetiklenir, Desen zaman aşımına uğradı uyarısı çıkar ve sayfa yanıt vermeye devam eder. Deseni sabitleyin, çakışmayan bir alternasyona geçin veya atomik benzeri deyimler kullanın — ve yeniden test edin.

Karışık sınırlandırıcılarla CSV benzeri satırı bölün

[,;|]\s*
alpha, beta; gamma | delta → ["alpha", "beta", "gamma", "delta"]

Böl sekmesine geçin. Herhangi bir virgül, noktalı virgül veya boru (ardından isteğe bağlı boşluk) bir parça sınırı olur. Kopyala-yapıştır etiket listelerini temizlemek, kullanıcı girdisini normalleştirmek veya gerçek bir CSV ayrıştırıcısından önce günlük alanlarını ön işlemek için kullanışlıdır — veriler gerçekten RFC 4180 ise CSV'den JSON'a aracına bakın.

Regex Test Aracı Nasıl Kullanılır

  1. 1

    Desenenizi bölü işaretlerinin arasına yazın

    Herhangi bir ECMA-262 düzenli ifadesini /…/ alanına bırakın. Hatalı desenler bir ayrıştırıcı mesajıyla kırmızıyla vurgulanır; geçerli desenler canlı eşleştirmeye geçer.

  2. 2

    İhtiyacınız olan bayrakları açıp kapatın

    g (global), i (büyük/küçük harf duyarsız), m (multiline), s (dotAll), u (unicode), y (yapışkan), d (indisler). Her çip açıkken yanar; desenin sağındaki gösterge standart değişmezi gösterir.

  3. 3

    Test metninizi yapıştırın

    Eşleşmeler siz yazarken sırayla değişen renklerde vurgulanır. Sağdaki Eşleşmeler ve yakalama grupları paneli her eşleşmeyi [start, end) ofsetleriyle ve her yakalama grubunun değeriyle listeler (adlandırılmış gruplar $ olarak etiketlenir).

  4. 4

    Değiştirme, Bölme veya Açıklama için sekmeleri değiştirin

    Değiştir, girdiyle birlikte bir değiştirme şablonunu önizler. Böl, her eşleşme sınırında dilimler. Açıkla deseni belirteç belirteç çözer ve her ögeyi düz İngilizce bir açıklama ile etiketler.

  5. 5

    Değişmezi kopyalayın veya bir kalıcı bağlantı paylaşın

    Kopyala /pattern/flags JavaScript / TypeScript / Node'da doğrudan kullanım için standart regex değişmezini panonuza bırakır. Bağlantıyı kopyala tüm durumu bir URL hash'ine kodlar (yükleme yok), böylece bir meslektaş onu yerel olarak yeniden üretebilir.

Yaygın Regex Hataları

/g bayrağını unuttum ve yalnızca bir eşleşme aldım

/g (veya /y) olmadan motor ilk eşleşmeden sonra durur. match, matchAll, replace ve split yöntemlerinin tümü global bayrak etrafında farklı davranır. /g açıp yeniden çalıştırın; sonuçların üstündeki sayı 1'den N'ye atlar.

✗ Yanlış
Desen: /\d+/  →  '1 22 333' yalnızca ['1'] verir
✓ Doğru
Desen: /\d+/g  →  '1 22 333' ['1', '22', '333'] verir

Bu Aracı Kim Kullanır

Göndermeden Önce Form Girdilerini Doğrulayın
E-posta / telefon / posta kodu / kullanıcı adı regex'inizin beklediklerinize eşleştiğini — ve beklemediklerinizi reddettiğini — uç durumlarda (unicode adlar, artı takma adlar, uluslararası biçimler) doğrulayın; doğrulama üretime ulaşıp gerçek kullanıcıları sektirmeden önce.
Günlüklerden ve Yapılandırmalardan Veri Çıkarın
Rastgele bir günlük diliminden istek kimliklerini, durum kodlarını, gecikmeleri veya yığın izleme satırlarını çeken bir desen oluşturun. Adlandırılmış gruplar veriyi kendi kendini belgeleyen yapar; Eşleşmeler paneli ofsetleri gösterir; böylece aynı regex'i sonrasında `rg --replace` veya `grep -oE` içine aktarabilirsiniz.
Bir Kod Tabanında Bul/Değiştir
Burada bir yeniden düzenleme deseni taslağı (örneğin `(\w+)\.apply\(null,\s*\[(.*?)\]\)` → `$1($2)`) hazırlayın, değiştirmeyi temsili parçacıklara karşı önizleyin, ardından doğrulanmış regex'i düzenleyicinizin proje genelinde bul/değiştir özelliğine güvenle yapıştırın.
Çevrimiçi Bulunan Bir Deseni Mantık Sınamasından Geçirin
StackOverflow'dan veya bir blogdan bir regex mi yapıştırdınız? Açıkla sekmesine bırakın — her belirteç düz İngilizce ile etiketlenir. Regex kodunuza inmeden önce ince sorunları (`.+` istediğiniz yerde `.+?`, eksik `^`/`$` sabitleri, kazara açgözlü niceleyiciler) yakalar.
Bir Takım Arkadaşınıza Regex Öğretin
Çalışan bir desende Açıkla sekmesini açın ve belirteç belirteç gezinin. Renk kodlaması (kaçış / niceleyici / karakter sınıfı / grup / sabit / alternasyon), öğrencinin regex'in yalnızca karakterlerini değil yapısal şeklini görmesini sağlar.
Bir Deseni Diller Arası Taşıyın
JavaScript'te kullanmanız gereken bir Python veya PCRE regex'iniz mi var? Buraya yapıştırın. Ayrıştırılırsa, açıklayıcı size JS eşdeğeri anlambilimini gösterir; ayrıştırılmazsa, ayrıştırıcı hatası ihlal eden yapıyı adlandırır (atomik gruplar, sahiplenici niceleyiciler, satır içi `(?i)`); böylece tam olarak neyi yeniden yazmanız gerektiğini bilirsiniz.
Yavaş Bir Üretim Regex'inin Hatalarını Ayıklayın
Bir sunucu regex'inin felaket geri izlemeye yatkın olduğundan şüpheleniliyorsa, girdinin bir örneğiyle bu test aracına yapıştırın. 250 ms duvar saati koruması patolojik durumlarda tetiklenir; size profilleyici araçlarına uzanmadan önce anında bir tanı verir — ve açıklayıcı iç içe niceleyici kök sebebine işaret eder.

Motor ve Algoritma Notları

ECMA-262 RegExp Motoru (Yerel Tarayıcı)
`new RegExp(pattern, flags)` ve V8 / JavaScriptCore / SpiderMonkey ile birlikte gelen motoru kullanır — JavaScript'te her yerde elde ettiğiniz aynı regex anlambilimi. Burada doğruladığınız desenler Node.js, Deno, Bun ve her modern tarayıcıda değişiklik olmadan çalışır.
String.matchAll Üzerinden Eşleşme Yinelemesi
Global yineleme, elle bir lastIndex döngüsü yerine `text.matchAll(regex)` kullanır; böylece her eşleşme yakalama gruplarını, adlandırılmış gruplarını ve (/d ile) [start, end] indislerini taşır. Sıfır genişlikli eşleşmeler, sonsuz döngüleri önlemek için standart +1 lastIndex ilerletmesiyle ele alınır.
ReDoS Koruması için Duvar Saati Zaman Aşımı
250 milisaniyelik bir bütçe her eşleştirme, değiştirme ve bölme çağrısını sarar. Motor hâlâ tek bir eşleşme denemesinde dahili olarak geri izleyebilir, ancak dış yineleme bütçeyle işbirliği yapar — patolojik desenler `timedOut: true` ile durur ve arayüz, sekmeyi kilitlemek yerine bir uyarı yüzeylendirir.
Değiştirme Şablonu Yeniden Uygulaması
Değiştir sekmesi $1..$N, $&, $`, $', $$ ve $ ifadelerini `String.replace`'a devretmek yerine elle ayrıştırır; böylece önizleme, adlandırılmış grup şablonlarının uç durumlara sahip olduğu motorlar (daha eski Safari, daha eski Node) arasında aynı şekilde davranır. Çıktı, geçerli JavaScript motorlarının ürettiğinin tam olarak aynısıdır.
Açıklayıcı için Desen Belirteçleyici
Açıkla sekmesi, her desen parçasını sınıflandıran (kaçış / metakarakter / niceleyici / karakter sınıfı / grup açılışı / grup kapanışı / sabit / alternasyon) elle yazılmış bir belirteçleyici çalıştırır. Tanıdık olmayan yapılar genel bir notla `literal` olarak düşer; böylece açıklayıcı asla içeriği sessizce düşürmez.
URL Hash'i Üzerinden Kalıcı Bağlantılar (Asla İletilmez)
Paylaşım durumu location.hash parçasında (`#p=…&f=…&t=…&tab=…`) kodlanır. Tarayıcılar parçayı HTTP isteklerinde asla iletmez; böylece go-tools.org sunucuları bir kalıcı bağlantı açıldığında sıfır veri alır. Hidrasyon tamamen alıcının cihazında gerçekleşir.

Regex En İyi Uygulamaları

Desenleri İstediğinizde Sabitleyin
`^pattern$` tam bir dizeye eşleşir; `pattern` herhangi bir yerde eşleşir. Yanlış seçim, form doğrulamasındaki en yaygın hatadır: eksik `^` bir baştaki `attacker.com/` ifadesinin alan adı denetiminden geçmesine izin verir; eksik `$` sondaki çöpün geçmesine izin verir. Neyin reddedildiğini doğrulamak için kasıtlı olarak bozuk örneklere karşı Eşleştir sekmesini kullanın.
Saf Yapı için Yakalama Yapmayan Grupları Tercih Edin
`(?:foo|bar)+` ve `(foo|bar)+` işlevsel olarak özdeştir, ancak ilki bir yakalama grubu ayırmaz. Grup yalnızca bir niceleyici veya alternasyon için var olduğunda `(?:…)` öğesine uzanın — numaralandırılmış $1..$N'nizi kararlı tutar ve küçük miktarda motor işinden tasarruf eder.
ASCII Ötesindeki Her Şey için /u Bayrağını Kullanın
/u olmadan, nokta ve `\w` vekil çift karakterlerini (emojiler, BMP olmayan kod noktaları) iki UTF-16 birim olarak ele alır. /u ile her biri bir kod noktasıdır — kullanıcılarınızın algılayacağı şey. /u ayrıca `\p{Letter}` ve diğer özellik kaçışlarını da etkinleştirir. Yeni desenler için /u kullanmamak için belirli bir nedeniniz olmadıkça varsayılan olarak /u kullanın.
Yakalama Gruplarınızı Adlandırın
`(?\d{4})-(?\d{2})` kendi kendini belgeleyendir. Altı ay sonra regex'i geri okuduğunuzda, `m.groups.year` açıkça yıldır — `m[1]` değil. $ ile değiştirme şablonları, grup yeniden sıralamasından da hayatta kalır: konumsal şablonlar, birisi başka bir grup eklediği anda kırılır.
Yalnızca Başarıyı Değil, Başarısızlık Durumlarını da Test Edin
Bir regex test aracı başarısızlıklar içindir. Deseninizin neye eşleştiğini doğrulayın, ardından neye eşleşmediğini görmek için test metnini kasıtlı olarak değiştirin — baştaki boşluk, sondaki boşluk, eksik parçalar, fazla parçalar, yanlış büyük/küçük harf, karışık alfabeler. Geçerli girdiyi geçen ancak çöpü kabul eden desenler, üretimin ilk önce ortaya çıkardığı hatalardır.

Sıkça Sorulan Sorular

Regex'im veya test metnim sunucunuza gönderiliyor mu?
Hayır. Her eşleştirme, değiştirme, bölme ve açıklama işlemi, yerel RegExp motoru kullanılarak tarayıcınızın içinde JavaScript'te çalışır. Deseniniz ve metniniz yüklenmez, kaydedilmez, diske kaydedilmez, üçüncü taraflara gönderilmez. Yalnızca arayüz tercihleriniz (etkin sekme + genellikle açık olan bayraklar) localStorage'a kaydedilir; böylece sayfa, bir sonraki ziyaretinizde bunları hatırlar — desen veya test metni asla. DevTools → Ağ sekmesini açarak doğrulayabilirsiniz: iki kutuya da yazmak sıfır istek tetikler. Bu, aracı tescilli desenler, kararartılmış günlük örnekleri, dahili yapılandırma ve regex101'e yapıştırmayacağınız her şey için güvenli kılar.
Bu test aracı hangi regex lehçesini kullanır — PCRE, Python, Java, JavaScript?
ECMA-262 (JavaScript), V8, JavaScriptCore ve SpiderMonkey tarafından uygulanan lehçe — herhangi bir tarayıcıda, Node.js, Deno veya Bun'da `new RegExp(pattern, flags)` ile aldığınız aynı motor. Bu, desteklenen özelliklerin şunlar olduğu anlamına gelir: yakalama grupları (numaralandırılmış + `(?...)` ile adlandırılmış), ileri bakışlar `(?=...)` ve `(?!...)`, geri bakışlar `(?<=...)` ve `(?...)`, sahiplenici niceleyiciler `a++`, koşullar `(?(1)yes|no)` ve satır içi değiştiriciler `(?i)` — sözdizimi hatası fırlatır. Python'un `re.VERBOSE` modu burada desteklenmez. Python/Java/Go regex'i için deseni yerel motoruna geri taşıyın — çoğu basit desen değiştirilmeden aktarılır ve buradaki açıklayıcı lehçeden bağımsızdır.
g, i, m, s, u, y, d bayraklarının her biri ne işe yarar?
g (global) — yalnızca ilkini değil her eşleşmeyi bulur; .matchAll ile yinelemek ve global değiştirme için gereklidir. i (büyük/küçük harf duyarsız) — A ve a aynı karaktere eşleşir. m (multiline) — ^ ve $, tüm girişin başına/sonuna değil her satır sonuna sabitlenir. s (dotAll) — . karakteri yeni satırlara da eşleşir; /s olmadan nokta \n karakterinde durur. u (unicode) — \u{HHHH} kaçışlarını, Unicode özellik kaçışlarını (\p{Letter}) etkinleştirir ve deseni UTF-16 kod birimleri yerine bir Unicode kod noktaları dizisi olarak ele alır. y (sticky) — her eşleşmeyi lastIndex'te sabitler; belirteçleyiciler için kullanışlıdır. d (hasIndices, ES2022) — her yakalama için [start, end] çiftleriyle `.indices` ve `.indices.groups` doldurur; bu test aracı grup sınırlarını çizmek için içeride /d kullanır. Test metninin üstündeki çiplerden bunları açıp kapatın; standart /pattern/flags değişmezi okunabilir alanda gösterilir.
Yakalama gruplarını nasıl yazarım ve onlara nasıl geri başvururum?
Bir alt deseni parantez içine alın: `(\d{4})-(\d{2})-(\d{2})` size üç konumsal grup verir, değiştirmelerde $1, $2, $3 veya Eşleşmeler panelinde m.groups[0..2] olarak erişilebilir. Adlandırılmış gruplar için `(?...)` kullanın: `(?\d{4})-(?\d{2})` değiştirme şablonunda $/$ yazmanıza izin verir. Yalnızca bir niceleyici için gruplama gerektiğinde `(?:...)` ile yakalama yapmayan grup kullanın (`(?:foo|bar)+`) — geri referans oluşturmaz, böylece numaralandırılmış $1..$N kararlı kalır. Aynı desen içinde, önceki bir yakalamaya `\1`, `\2` vb. ile başvurun — `\b(\w+)\s+\1\b` gibi tekrarlanan kelimeleri bulmak için kullanışlıdır.
İleri bakış ve geri bakış nasıl çalışır ve ne için iyidirler?
Bakışlar sıfır genişlikli iddialardır — karakterleri tüketmeden bir şeyin eşleşip eşleşmediğini denetlerler. `(?=foo)` (pozitif ileri bakış), `foo` geçerli konumdan sonra geliyorsa başarılı olur; `(?!foo)` (negatif ileri bakış), `foo` gelmiyorsa başarılı olur. `(?<=foo)` ve `(?
Regex'im neden tarayıcıyı askıya alıyor ve felaket geri izleme nedir?
Felaket geri izleme, bir desen çakışan alternatifler üzerinde iç içe niceleyiciler içerdiğinde olur — klasik biçimleri `(a+)+`, `(a|aa)+`, `(\w*)*` veya `(?:a|a?)+`. Eşleşmenin son karakterde başarısız olabileceği bir girdide, motor pes etmeden önce üstel sayıda grup bölüşümü dener. `aaaaaaaaaaaaaaaaaaaaab` üzerinde `(a+)+b` deseniyle, cevaptan önce 2^21 ≈ 2 milyon geri izleme olur. Bu test aracı her eşleştirme çağrısını 250 ms duvar saati bütçesiyle sarar — bütçe aşılırsa yineleme durur ve Desen zaman aşımına uğradı uyarısını görürsünüz. Düzeltmeler: deseni sınırlarına sabitleyin (`^...$`), çakışmayan alternatifleri tercih edin (`(a|aa)` yerine `(a|b)`), iç içe niceleyicileri açın (`(a+)+` yerine `a+`) veya sahiplenici benzeri deyimleri kullanın (`(?=(a+))\1` JS'te `a++` simüle eder).
Bu regex test aracı regex101.com'dan nasıl farklı?
Üç fark. (1) Gizlilik: regex101, her tuş vuruşunu arka uç değerlendirmesi için sunucularına gönderir ve desenleri paylaşılan topluluk bağlantılarında saklar; bu araç tamamen tarayıcınızda çalışır, ağ çağrısı yoktur. (2) Hız: her değişiklikte bir sunucu gidiş-dönüşü 80-300 ms ekler; burada eşleşmeler uzun metinde bile 10 ms'nin altında güncellenir. (3) Lehçe odağı: regex101, özellik bayrağı arayüzüyle PCRE, Python, Java, .NET, JavaScript, Rust ve Go destekler; bu araç ECMA-262'ye (JavaScript) — her tarayıcı, Node, Deno ve Bun'un sağladığı lehçeye — odaklanır ve açıklayıcı ile kalıcı bağlantılar bu tek lehçeye göre ayarlanmıştır. Yalnızca PCRE özelliklerine ihtiyacınız varsa regex101 hâlâ doğru araçtır; JavaScript / TypeScript işi için bu daha hızlı ve daha gizlidir. Buradaki kalıcı bağlantılar URL hash'leridir (yükleme yok), bu yüzden paylaşılan bir bağlantı alıcının makinesinde deseninizi yerel olarak yeniden üretir.
. | ( ) [ ] { } * + ? ^ $ \ gibi özel karakterleri nasıl kaçırırım?
Önüne ters bölü koyun: `\.`, `\|`, `\(`, `\)`, `\[`, `\]`, `\{`, `\}`, `\*`, `\+`, `\?`, `\^`, `\$`, `\\`. İleri bölü `/` dize olarak geçirilen bir desende kaçırılmaya gerek duymaz (yalnızca JS regex değişmezlerinde bölü işaretleri arasında). Bir karakter sınıfı `[...]` içinde çoğu metakarakter özel anlamını yitirir, bu yüzden `[.]`, `[*]`, `[+]` bir hazır karaktere eşleşir — özel kalan tek metakarakterler `]`, `\`, `^` (yalnızca başta olumsuzlamak için) ve `-` (iki karakter arasındayken aralık). Şüpheniz varsa, hazır metni desene yapıştırın ve açıklayıcıyı çalıştırın: her kaçış dizisi, ayrıntı panelinde tek satırlık bir açıklama alır.
Bir meslektaşımla regex'i bir bağlantı üzerinden paylaşabilir miyim?
Evet — ve bağlantıda sunucu gidiş-dönüşü yoktur. Eylem çubuğunda Bağlantıyı kopyala'yı tıklayın: test aracı deseninizi, bayraklarınızı, test metninizi ve etkin sekmenizi URL hash'ine kodlar (`#p=...&f=gim&t=...&tab=match`). Bağlantıyı açan herkes, sayfayı aynı durumla — kendi makinesinde yerel olarak — sulandırır. Veri hash parçasında yaşadığı için, go-tools.org sunucusuna asla gönderilmez (tarayıcılar isteklerde parçaları iletmez) ve erişim günlüklerimizde kaydedilmez. Bağlantı uzunluğu metin boyutuyla büyür; bu yüzden >2 KB örnekler için regex'i Kopyala /pattern/flags ile alın ve metni ayrı yapıştırın. Gerçek metni paylaşmadan ortak regex incelemesi için yalnızca deseni ve bayrakları paylaşın — alıcı kendi külliyatını yapıştırır ve aynı eşleşmeleri alır.
Test aracı Unicode, emoji ve Latin olmayan alfabeleri destekliyor mu?
Evet. Tam Unicode işlemeye katılmak için /u bayrağını etkinleştirin: \w varsayılan olarak Latin kelime karakterlerine eşleşir, ancak /u ile Unicode özellik kaçışları aracılığıyla daha geniş kategorilere eşleşebilirsiniz — `\p{Letter}` her alfabedeki her harfe, `\p{Script=Han}` Çince ideogramlara, `\p{Emoji}` emojilere, `\p{Number}` her rakam/sayıya eşleşir. /u olmadan, 👨‍💻 gibi vekil çifti emojiler iki UTF-16 kod birimi olarak görülür ve `^.$` gibi desenler bunlara eşleşmeyi başaramaz; /u ile nokta her grafem kod noktasını tek bir karakter olarak ele alır. RTL alfabeler (Arapça, İbranice) için desenler özel işlem gerektirmeden çalışır — yön bir oluşturma zamanı meselesidir, regex motoru meselesi değil. CJK içeriği Latin ile aynı şekilde eşleşir.
.match, .matchAll, .replace ve .split arasında regex ile ne fark var?
String.prototype.match ilk eşleşmeyi döndürür (veya /g ayarlandığında tüm eşleşmelerin bir dizisini) ancak /g açıkken yakalama gruplarını kaybeder. String.prototype.matchAll /g gerektirir ve yakalama grupları VE indislerle bir eşleşme dizileri yineleyicisi döndürür — bu test aracının içeride kullandığı. String.prototype.replace ya bir dize şablonu ($1, $&, vb.) ya da eşleşme başına (match, ...groups, offset, string, namedGroups) ile çağrılan bir geri çağırma kabul eder. String.prototype.split her eşleşmede böler — /g ile kullanışlıdır ama global bayrak split anlamı için yok sayılır. Bu araç eşleştirmeyi Eşleştir sekmesi aracılığıyla, değiştirmeyi Değiştir ve bölmeyi Böl aracılığıyla sergiler; böylece sayfadan ayrılmadan her lehçeyi önizleyebilirsiniz; kodu yapıştırmaya hazır olduğunuzda /pattern/flags değişmezi bir tık uzağınızdadır.
Neden Python veya Java regex'im burada çalışmıyor?
Çünkü bu test aracı ECMA-262 (JavaScript) çalıştırır — çoğu desen temiz bir şekilde taşınır, bir avuç dolusu taşınmaz. Yaygın taşıma tuzakları: (1) Python'un satır içi bayrakları `(?i)` ve `(?x)` JS'te geçerli değildir — bunun yerine üstteki bayrak çiplerini kullanın. (2) Python'un `\A` ve `\Z` ifadeleri JS'te `^` ve `$` ile (satır sabitleri için /m ile). (3) Java/Python koşulları `(?(name)yes|no)` JS'te desteklenmez — bir alternasyonla yeniden yazın. (4) Sahiplenici niceleyiciler `a++` ve atomik gruplar `(?>...)` JS'te yoktur — `(?=(a+))\1` ile simüle edin. (5) Python `(?P...)` JS'te `(?...)` olur. (6) Yatay boşluk için `\h` ve dikey için `\v` JS'te yoktur — `[ \t]` ve `[\n\r]` kullanın. Taşınabilir bir taşıma için açıklayıcı her belirteci açıklar, böylece desteklenmeyen sözdizimini bir eşdeğeriyle değiştirebilirsiniz.
Maksimum metin boyutu veya eşleşme sayısı var mı?
Pratik sınır: aynı anda yaklaşık 200.000 karakter test metni ve 500 vurgulu eşleşme görüntülenir. 500 eşleşmeyi aştığında Eşleşmeler paneli İlk 500 gösteriliyor uyarısı verir; sayı rozeti hâlâ gerçek toplamı raporlar. 250 ms duvar saati bütçesi, boyuttan bağımsız olarak başıboş desenleri sınırlandırır. Çoklu megabaytlık günlük dosyaları için regex'i komut satırı `grep -oE` veya `rg` (ripgrep) ile çalıştırın — bunlar akışla çalışır ve bir arayüz oluşturma sınırına çarpmaz. Büyük metnin tek seferlik taramaları için, deseni doğrulamak üzere temsili bir dilim bu test aracına yapıştırın, ardından doğrulanmış deseni kabuğunuzda tam dosyaya karşı çalıştırın.

Metin Karşılaştırma ve Diff

Metin İşleme

İki metni tarayıcınızda anında karşılaştırın. Satır içi kelime düzeyinde vurgulu yan yana görünüm, unified-diff dışa aktarımı, büyük/küçük harf — boşluk — boş satır yoksayma. %100 gizli — metniniz cihazınızdan ayrılmaz.

Ücretsiz Kelime Sayıcı ve Karakter Sayma Aracı

Metin İşleme

Kelime, karakter, cümle, paragraf ve okuma süresini anında sayın. Twitter, meta açıklama ve Instagram sınır denetimleriyle gerçek zamanlı kelime sayıcı. Ücretsiz, gizli, çevrimiçi, kayıt yok.

Sayı Tabanı Dönüştürücü — Binary, Hex, Decimal ve Octal

Dönüştürme Araçları

Binary, hex, decimal, octal ve herhangi bir taban (2-36) arasında anında dönüştürün. Ücretsiz ve gizli — tüm işlem tarayıcınızda yapılır.

Base64 Çözücü ve Kodlayıcı

Kodlama ve Biçimlendirme

Base64'ü ücretsiz çevrimiçi kodlayın ve çözün. Tam UTF-8 ve emoji desteğiyle gerçek zamanlı dönüştürme. %100 tarayıcıda — kayıt gerekmez.

Crontab Oluşturucu ve Cron İfadesi Üretici

Tarih ve Saat

Cron ifadelerini tarayıcıda oluşturun, doğrulayın ve çözümleyin. Yerel saatte veya UTC olarak canlı çalışma önizlemesi. POSIX 5 alanlı söz dizimi, hazır şablonlar ve sade açıklama. Ücretsiz ve gizli.

CSV'den JSON'a Dönüştürücü

Kodlama ve Biçimlendirme

CSV'yi tarayıcınızda JSON'a dönüştürün. RFC 4180, tür çıkarımı, başlık satırı, büyük tam sayı güvenli. %100 gizli, yükleme yok.