Ana içeriğe geç
FreeOnlineTools Go
Türkçe
Referans

Regular Expression Cheat Sheet: Sözdizimi, Flag'ler ve Yaygın Desenler

FreeOnlineTools Team tarafından · 2026-08-28 güncellendi

Hızlı Yanıt

Regex, literal character, metacharacter (., \d, \w, \s), quantifier (*, +, ?, {n,m}), anchor (^, $, \b) ve group ((...), [...]) birleştirir. g (global), i (case-insensitive), m (multiline) gibi flag'ler match davranışını değiştirir. Kalıpları canlı test etmek için Regex Tester kullanın.

giriiş

Regular expression (regex), kompakt bir formal dil kullanarak metin kalıplarını açıklar. Her modern programlama dili, editör ve search tool tarafından desteklenir. Bu cheat sheet, ECMAScript tarafından tanımlanan syntax için bir reference ve kopyalayıp uyarlayabileceğiniz yaygın kalıplardır. Kalıpları örnek metinle test etmek için Regex Tester kullanın.

Adım adım

  1. Karakter sınıfları —bir grup karakterle eşleşir

    [abc] a, b veya c ile eşleşir. [^abc] a, b, c dışında herhangi bir şeyle eşleşir. [a-z] herhangi bir küçük harfle eşleşir. Önceden tanımlanmış sınıflar: \d = [0-9], \D = rakamsız, \w = [A-Za-z0-9_], \W = kelimesiz, \s = beyaz boşluk, \S = boşluksuz, . = yeni satır dışında herhangi bir karakter (yeni satırı eklemek için s işaretini kullanın).

  2. Niceleyiciler — kaç kez tekrarlanacak

    * = 0 veya daha fazla. + = 1 veya daha fazla. ? = 0 veya 1. {n} = tam olarak n. {n,} = en az n. {n,m} = n ile m arasında. Eklemek ? tembel eşleştirme için (örneğin *? mümkün olduğunca az sayıda eşleşir). Açgözlülük varsayılandır ve iç içe geçmiş kalıplarda yıkıcı geri izlemelere neden olabilir.

  3. Sabitleme noktaları ve sınırlar — nerede eşleştirilmeli

    ^ dizenin başlangıcıyla (veya m işaretli satırla) eşleşir. $ sonuyla eşleşir. \b bir sözcük sınırıyla eşleşir (\w ve \W arasında). \B, Kelime olmayan bir sınırla eşleşir. Çapalar sıfır genişliktedir; karakterleri tüketmeden konumu test ederler.

  4. Gruplar ve değişim

    (abc) bir yakalama grubudur; yerine 1$, 2$ kullanın. (?:abc) yakalamayan bir gruptur. (?=abc) bir ileri bakıştır (aşağıdakileri ileri sürer). (?!abc) olumsuz bir ileri bakıştır. (?<=abc) bir geriye bakıştır (ES2018+). a|b değişimdir (a veya b).

  5. Bayraklar —eşleşme davranışını değiştirin

    g = global (yalnızca ilkini değil, tüm eşleşmeleri bulun). i = büyük/küçük harfe duyarlı değil. m = çok satırlı (^ ve $ satır sınırlarıyla eşleşir). s = dotAll (. yeni satırla eşleşir). u = unicode (deseni Unicode kod noktaları olarak ele alın; emoji ve astral karakterler için gereklidir). y = yapışkan (yalnızca lastIndex'te eşleşir).

Örnekler

Bir e-posta adresini eşleştirin (pratik, RFC 5322 basitleştirilmiş)

Giriş: Pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/

Çıkış: 'kullanıcı@example.com' ve 'a.b@alt.alanadi.co' ile eşleşir ancak 'açıkadres' veya '@kullanıcısız.com' ile eşleşmez

Tüm onaltılık renk kodlarını CSS'den çıkarın

Giriş: Pattern: /#[0-9a-fA-F]{3,8}\b/g

Çıkış: In 'color: #fff; background: #1a2b3c4d' finds ['#fff', '#1a2b3c4d']

ISO 8601 tarihini doğrulayın (YYYY-AA-GG)

Giriş: Pattern: /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

Çıkış: '2026-08-28' ile eşleşir ancak '2026-13-01' ve '2026-02-31'i reddeder

Bir yakalama grubu kullanarak rakamları # ile değiştirin

Giriş: 'Sipariş 42 gönderildi' yerine /(\d+)/g →'#$1' yazıldı

Çıkış: '42 numaralı sipariş gönderildi'

Yaygın Sorunlar

  • Açgözlü niceleyiciler çok fazla eşleşiyor: '<a><b>' üzerindeki '<.*>', '<a>' yerine '<a><b>' dizesinin tamamıyla eşleşiyor. Önce '<a>' ile eşleştirmek için '<.*?>' (tembel) kullanın.
  • Felaket geri izleme: 'aaaaaaaaaaaaaaaa!' girişinde (a+)+b gibi iç içe geçmiş niceleyiciler üstel zaman alabilir. Deseni yeniden yazın veya desteklendiği yerde atomik grupları/iyelik nicelik belirteçlerini kullanın.
  • Unicode için u bayrağını unutmak: /^.$/ tek bir kod birimiyle eşleşir, bu nedenle '😀' (iki kod birimi) gibi emojiler u bayrağı olmadan başarısız olur. Astral karakterleri eşleştirirken daima u ekleyin.
  • \b'yi (kelime sınırı) \s (boşluk) ile karıştırmak: \b, bir sözcük ile sözcük olmayan bir karakter arasında eşleşir, dolayısıyla dizenin başında/sonunda da çalışır. \s yalnızca gerçek boşluk karakterleriyle eşleşir.

İpuçları

  • Regex'i üretim koduna yerleştirmeden önce her zaman Regex Test Aracımızda hem eşleşen hem de eşleşmeyen örneklere karşı test edin; uç durumların gözden kaçırılması kolaydır.
  • Tek karakterler için karakter sınıflarını (a|b|...|z) yerine [a-z] karakter sınıflarını tercih edin; sınıflar daha hızlı ve daha nettir.
  • Yakalanan değere ihtiyacınız olmadığında yakalamayan grupları (?:...) kullanın; yakalamanın performans maliyeti küçüktür ve sonuç dizisini karmaşıklaştırır.
  • Regex'i bir kez sıcak döngü içinde değil, yeni RegExp() veya modül kapsamındaki bir değişmez değerle derleyin; her yinelemede aynı modeli yeniden derlemek CPU israfına neden olur.

İlgili Araçlar

İlgili Kılavuzlar

Referanslar