Regular Expressions (Regex) Tam Rehberi
Regular expressions (düzenli ifadeler / regex), metin arama, doğrulama ve dönüştürme işlemleri için kullanılan güçlü bir pattern dilidir. İlk başta korkutucu görünse de temel kalıpları öğrendikten sonra çok pratik bir araç haline gelir.
Temel Sözdizimi
Literal Karakterler
/merhaba/ → "merhaba" kelimesini bulur
/MagmaNex/ → "MagmaNex" stringini bulur (büyük-küçük harf duyarlı)
Özel Karakterler
| Karakter | Anlamı | Örnek |
|---|---|---|
. |
Herhangi bir karakter (newline hariç) | a.c → "abc", "a1c" |
* |
0 veya daha fazla | ab*c → "ac", "abc", "abbc" |
+ |
1 veya daha fazla | ab+c → "abc", "abbc" (ama "ac" değil) |
? |
0 veya 1 (isteğe bağlı) | colou?r → "color", "colour" |
^ |
Satır başı | ^Merhaba |
$ |
Satır sonu | merhaba$ |
\b |
Kelime sınırı | \bcat\b → "cat" ama "catch" değil |
Karakter Sınıfları
[abc] → a, b veya c
[a-z] → küçük harf a'dan z'ye
[A-Z] → büyük harf A'dan Z'ye
[0-9] → 0'dan 9'a (veya \d)
[^abc] → a, b, c DIŞINDA herhangi bir karakter
[a-zA-Z0-9_] → harf, rakam veya alt çizgi (veya \w)
Kısaltmalar
| Kısaltma | Anlamı |
|---|---|
\d |
Rakam [0-9] |
\D |
Rakam olmayan [^0-9] |
\w |
Kelime karakteri [a-zA-Z0-9_] |
\W |
Kelime karakteri olmayan |
\s |
Boşluk (space, tab, newline) |
\S |
Boşluk olmayan |
Nicelik Belirteçleri (Quantifiers)
{3} → Tam olarak 3 kez
{3,} → En az 3 kez
{3,6} → 3 ile 6 kez arası
{3}? → Lazy (minimum eşleşme)
Gruplama ve Yakalama
(abc)+ → "abc", "abcabc", "abcabcabc"
(?:abc)+ → Non-capturing group (yakalamadan grupla)
(?<name>abc) → Named capture group
En Sık Kullanılan Regex Pattern'leri
E-posta Doğrulama
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
💡 Tek tek e-posta adreslerini hızlıca kontrol etmek için E-posta Doğrulayıcı aracını kullanabilirsiniz.
Türkçe Telefon Numarası
^(\+90|0)?[5][0-9]{9}$
URL Doğrulama
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$
IPv4 Adresi
^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Güçlü Şifre
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
(En az 8 karakter, büyük/küçük harf, rakam ve özel karakter)
Bu kurallara uyan güçlü parolaları otomatik üretmek için Parola Üretici, mevcut bir parolanın gücünü ölçmek için ise Parola Güç Ölçer aracımızı kullanabilirsiniz.
Türkçe TC Kimlik No
^[1-9][0-9]{10}$
Kredi Kartı Numarası
^(?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$
Regex yalnızca formatı kontrol eder; bir kart numarasının Luhn algoritmasına göre geçerli olup olmadığını sınamak için Kredi Kartı Doğrulayıcı aracını kullanın.
JavaScript'te Regex Kullanımı
// test() — boolean döner
/^\d+$/.test("12345") // true
/^\d+$/.test("123a5") // false
// match() — eşleşmeleri döner
"Merhaba Dünya".match(/[A-Z]/g) // ["M", "D"]
// replace() — değiştirir
"hello world".replace(/\bworld\b/, "MagmaNex") // "hello MagmaNex"
// Tüm global replace
"aabbcc".replaceAll(/a/g, "x") // "xxbbcc"
// split()
"bir,iki,,üç".split(/,+/) // ["bir", "iki", "üç"]
// Named groups
const m = "2026-05-22".match(/(?<yil>\d{4})-(?<ay>\d{2})-(?<gun>\d{2})/)
console.log(m.groups.yil) // "2026"
Lookahead ve Lookbehind
(?=...) Positive lookahead — sağında ... var
(?!...) Negative lookahead — sağında ... yok
(?<=...) Positive lookbehind — solunda ... var
(?<!...) Negative lookbehind — solunda ... yok
Örnek:
// Fiyat numaralarını bul (₺ işaretinden önce)
"100₺ ve 200₺".match(/\d+(?=₺)/g) // ["100", "200"]
// ₺ olmayan sayıları bul
"100₺ ve 200kg".match(/\d+(?!₺)/g) // ["200"]
Flags (Bayraklar)
| Flag | Anlamı |
|---|---|
g |
Global — tüm eşleşmeler |
i |
Case-insensitive |
m |
Multiline — ^ ve $ her satır için |
s |
Dotall — . newline dahil eşleşir |
u |
Unicode desteği |
Regex Test Et
MagmaNex'in Regex Tester aracını kullanarak pattern'lerinizi gerçek zamanlı test edebilirsiniz. Eşleşmeler anında vurgulanır ve gruplar ayrı ayrı gösterilir.
İpuçları
- Önce basit başla: Karmaşık regex yerine adım adım oluştur
- Test et: Her pattern'i gerçek verilerle test et
- Yorum ekle: Karmaşık regex'leri belgele
- Performans:
.*yerine mümkünse daha spesifik pattern kullan - Hata ayıklama: regex101.com veya MagmaNex Regex Tester kullan
Regex öğrenmek zaman alır ama bir kez öğrenince programlama yaşamınızı tamamen değiştirir!

