Anlık Test
Regex yazarken eşleşmeleri anlık olarak görün. Real-time test ile hızlı debug.
Düzenli ifadeleri (regex) anlık test et, eşleşmeleri renkli vurgula. Capture groups, flags, 50+ hazır pattern, regex açıklama üretici. %100 ücretsiz.
.
Herhangi bir karakter
\d
Rakam (0-9)
\w
Kelime karakteri
\s
Boşluk
*
0 veya daha fazla
+
1 veya daha fazla
?
0 veya 1
^
Satır başı
$
Satır sonu
[]
Karakter sınıfı
()
Grup
|
VEYA
Regex yazarken eşleşmeleri anlık olarak görün. Real-time test ile hızlı debug.
Her regex token'ının ne anlama geldiğini Türkçe/İngilizce açıklar. Öğrenerek kullan.
Tehlikeli pattern'leri tespit eder, performans uyarısı verir. Güvenli regex yaz.
Match, Search, Replace, Split modları. Her ihtiyaca uygun test imkanı.
Capture groups farklı renklerde vurgulanır. Görsel olarak kolay takip.
Email, URL, telefon, tarih, IP, şifre, Türkçe pattern'ler hazır. Kopyala-yapıştır.
Regex (Regular Expression - Düzenli İfade), metin içinde belirli desenleri aramak, eşleştirmek ve değiştirmek için kullanılan güçlü bir karakter dizisi kalıbıdır. Programlama, veri analizi, form doğrulama, log parsing gibi birçok alanda vazgeçilmez olan regex, geliştiricilerin en sık kullandığı araçlardan biridir. HızlıTools Regex Tester ile düzenli ifadelerinizi anlık test edebilir, eşleşmeleri renkli vurgulayabilir, capture groups'ları detaylı inceleyebilir ve 50+ hazır pattern kütüphanesinden yararlanabilirsiniz.
Regex, metin işleme dünyasının İsviçre çakısıdır. Basit bir email doğrulamasından karmaşık log parsing'e, form validasyonundan veri çıkarmaya kadar sayısız kullanım alanı vardır. Modern programlamanın temel taşlarından biri olan regex, her geliştiricinin bilmesi gereken bir konudur.
Regex, meta karakterler ve özel diziler kullanılarak yazılır. İşte en temel regex yapıları:
| Karakter | Açıklama | Örnek |
|---|---|---|
. |
Herhangi bir karakter (yeni satır hariç) | a.c → abc, axc, a c |
\d |
Rakam (0-9) | \d\d\d → 123 |
\D |
Rakam dışı karakter | \D+ → abc, XYZ |
\w |
Kelime karakteri (a-z, A-Z, 0-9, _) | \w+ → hello_123 |
\W |
Kelime dışı karakter | \W+ → @#$, boşluk |
\s |
Boşluk karakteri (space, tab, newline) | \s+ → boşluklar |
\S |
Boşluk dışı karakter | \S+ → kelimeler |
^ |
Satır başı (anchor) | ^Hello → "Hello world" eşleşir |
$ |
Satır sonu (anchor) | world$ → "Hello world" eşleşir |
* |
0 veya daha fazla tekrar (greedy) | ab*c → ac, abc, abbc |
+ |
1 veya daha fazla tekrar | ab+c → abc, abbc (ac eşleşmez) |
? |
0 veya 1 tekrar (opsiyonel) | ab?c → ac, abc |
[] |
Karakter sınıfı (character class) | [abc] → a, b veya c |
[^] |
Negatif karakter sınıfı | [^abc] → a, b, c dışı |
() |
Capture group (yakalama grubu) | (abc)+ → abc, abcabc |
(?:) |
Non-capturing group | (?:abc)+ → gruplar ama yakalamaz |
| |
VEYA (alternation) | cat|dog → cat veya dog |
{n} |
Tam n kez tekrar | a{3} → aaa |
{n,m} |
n ile m arasında tekrar | a{2,4} → aa, aaa, aaaa |
\b |
Kelime sınırı (word boundary) | \bcat\b → "cat" kelimesi |
Flags, regex'in davranışını değiştiren modifiers'dır. HızlıTools Regex Tester'da tüm JavaScript flag'leri desteklenmektedir:
Capture groups, regex'in en güçlü özelliklerinden biridir. Parantez () ile belirtilir ve eşleşmenin belirli kısımlarını yakalar:
(pattern) - Eşleşmeyi yakalar, $1, $2 ile erişilir(?:pattern) - Yakalamaz, sadece gruplar(?<name>pattern) - İsimlendirilmiş grup, erişim kolay(?=pattern) - Sonrasını kontrol eder, eşleştirmez(?!pattern) - Sonrasının olmadığını kontrol eder(?<=pattern) - Öncesini kontrol eder(?<!pattern) - Öncesinin olmadığını kontrol eder(?>pattern) - Backtracking'i engeller, performans artırırİşte geliştiricilerin en sık kullandığı regex pattern'leri:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Bu regex, kullanıcı adı (harf, rakam, nokta, alt çizgi, %, +, -), @ işareti, domain adı ve en az 2 karakterli uzantıyı kontrol eder. RFC 5322 standardına büyük ölçüde uygundur.
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
HTTP/HTTPS protokolü, domain adı, uzantı ve path'i kontrol eder. Subdomain'leri de destekler.
^(\+90|0)?\s?\d{3}\s?\d{3}\s?\d{2}\s?\d{2}$
Ülke kodu (+90 veya 0), alan kodu (3 hane) ve numara (7 hane) formatını kontrol eder. Boşluklu ve boşluksuz formatları destekler.
^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/\d{4}$
Gün (01-31), ay (01-12) ve 4 haneli yıl formatını kontrol eder. Geçersiz tarihleri (31/02 gibi) regex ile tam doğrulamak zordur, ek kod gerekebilir.
^((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]?)$
Her oktetin 0-255 arasında olduğunu kontrol eder. Geçersiz IP'leri (999.999.999.999 gibi) reddeder.
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
En az 8 karakter, bir küçük harf, bir büyük harf, bir rakam ve bir özel karakter gerektirir. Lookahead kullanarak her kuralı ayrı kontrol eder.
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})$
Visa (4 ile başlayan), MasterCard (51-55) ve American Express (34, 37) kartlarını doğrular. Luhn algoritması için ek kontrol gerekir.
^[1-9]{1}[0-9]{9}[0-9]{2}$
11 haneli T.C. kimlik numarası formatını kontrol eder. İlk rakam 0 olamaz. Gerçek doğrulama için algoritma kontrolü gerekir.
Quantifiers'ın iki türü vardır: Greedy (aç) ve Lazy (tembel). Bu fark, regex performansını ve sonuçlarını doğrudan etkiler:
<.*> → tüm HTML'i yakalar<.*?> → ilk etiketi yakalar
Lazy quantifiers, *?, +?, ??, {n,m}? şeklinde kullanılır.
HTML parsing gibi durumlarda lazy kullanmak genellikle daha doğru sonuç verir.
Kötü yazılmış regex'ler ciddi performans sorunlarına yol açabilir. İşte optimizasyon ipuçları:
(a+)+) CPU'yu kilitler(?>pattern) backtracking'i engeller*+, ++ geri dönüşü engeller^ ve $ arama alanını daraltır[abc] yerine (a|b|c) daha yavaştırReDoS (Regular Expression Denial of Service), kötü niyetli input ile regex motorunu aşırı CPU tüketimine sokan bir güvenlik açığıdır. Özellikle kullanıcı girdisiyle çalışan web uygulamalarında ciddi bir tehdittir.
(a+)+$ - "aaaaaaX" gibi input ile CPU'yu kilitlerRegex çoğu programlama dilinde desteklenir. İşte popüler dillerde kullanım örnekleri:
const regex = /^[a-z]+$/i;
const text = "Hello";
console.log(regex.test(text)); // true
console.log(text.match(regex)); // ["Hello"]
console.log(text.replace(/l/g, 'L')); // "HeLLo"
import re
pattern = r"^[a-z]+$"
text = "Hello"
print(re.match(pattern, text, re.IGNORECASE))
print(re.findall(r"\d+", "abc123def456")) # ['123', '456']
print(re.sub(r"\d+", "X", "abc123")) # "abcX"
using System.Text.RegularExpressions;
var regex = new Regex(@"^[a-z]+$", RegexOptions.IgnoreCase);
Console.WriteLine(regex.IsMatch("Hello")); // True
var matches = Regex.Matches("abc123", @"\d+");
Pattern pattern = Pattern.compile("^[a-z]+$", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Hello");
System.out.println(matcher.matches()); // true
String result = "abc123".replaceAll("\\d+", "X"); // "abcX"
$pattern = '/^[a-z]+$/i';
$text = "Hello";
echo preg_match($pattern, $text); // 1
$result = preg_replace('/\d+/', 'X', 'abc123'); // "abcX"
Karmaşık regex'leri debug etmek zor olabilir. İşte etkili stratejiler:
. meta karakterdir, literal nokta için \. kullanın^ ve $ olmadan regex kısmen eşleşir<.*> yerine <.*?> kullanın[] içinde \d çalışmaz, 0-9 kullanın\\d yazmak gerekiru flag'i kullanın| Özellik | HızlıTools Regex Tester | Regex101 | RegExr |
|---|---|---|---|
| Fiyat | ✅ Tamamen Ücretsiz | ✅ Ücretsiz | ✅ Ücretsiz |
| Türkçe Arayüz | ✅ Tam Türkçe | ❌ İngilizce | ❌ İngilizce |
| Hazır Pattern | ✅ 50+ (TR/EN) | ⚠️ Topluluk | ⚠️ Topluluk |
| Renkli Vurgulama | ✅ 5 Renk | ✅ Tek Renk | ✅ Tek Renk |
| Capture Groups | ✅ Detaylı | ✅ Detaylı | ✅ Detaylı |
| Flags Desteği | ✅ g, i, m, s, u, y | ✅ g, i, m, s, u | ✅ g, i, m, s |
| Dark Mode | ✅ Var | ✅ Var | ❌ Yok |
| Share URL | ✅ Var | ✅ Var | ✅ Var |
| JSON Export | ✅ Var | ❌ Yok | ❌ Yok |
| Otomatik Kayıt | ✅ LocalStorage | ❌ Yok | ❌ Yok |
| Gizlilik | ✅ %100 Client-side | ⚠️ Sunucu var | ⚠️ Sunucu var |
| Klavye Kısayolları | ✅ 6+ Kısayol | ⚠️ Sınırlı | ❌ Yok |
Regex (Regular Expression - Düzenli İfade), metin içinde belirli desenleri aramak, eşleştirmek ve değiştirmek için kullanılan bir karakter dizisidir. Metin işleme, form doğrulama, veri çıkarma gibi birçok alanda kullanılır.
Regex tester, yazdığınız düzenli ifadelerin doğru çalışıp çalışmadığını anlık olarak test etmenizi sağlar. Eşleşmeleri renkli vurgular, capture groups'ları gösterir ve hataları tespit eder.
Regex, meta karakterler (., *, +, ?, ^, $, [], (), {}, |, \) kullanılarak yazılır. Örneğin: ^[a-z]+$ (sadece küçük harfler), \d{3}-\d{4} (telefon numarası formatı). HızlıTools Regex Tester ile anlık test edebilirsiniz.
g (global): Tüm eşleşmeleri bulur. i (case-insensitive): Büyük/küçük harf duyarsız. m (multiline): Her satırı ayrı satır olarak kabul eder. s (dotAll): Nokta karakteri yeni satırı da eşleştirir. u (unicode): Unicode desteği. y (sticky): Yapışkan eşleşme.
Capture groups, regex içinde parantez () ile belirtilen ve eşleşmenin belirli kısımlarını yakalayan yapılardır. Örneğin: (\d{2})\/(\d{2})\/(\d{4}) regex'i tarihin gün, ay, yıl kısımlarını ayrı ayrı yakalar.
Email doğrulama için: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ regex'i kullanılabilir. Bu regex, kullanıcı adı, @ işareti, domain ve uzantıyı kontrol eder. HızlıTools'ta hazır pattern olarak mevcuttur.
URL doğrulama için: ^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$ regex'i kullanılabilir. HTTP/HTTPS, domain, uzantı ve path'i kontrol eder.
Türk telefon numarası için: ^(\+90|0)?\s?\d{3}\s?\d{3}\s?\d{2}\s?\d{2}$ regex'i kullanılabilir. Ülke kodu, alan kodu ve numara formatını kontrol eder.
GG/AA/YYYY formatı için: ^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[0-2])\/\d{4}$ regex'i kullanılabilir. Gün (01-31), ay (01-12) ve yıl formatını kontrol eder.
IPv4 adresi için: ^((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]?)$ regex'i kullanılabilir. Her oktetin 0-255 arasında olduğunu kontrol eder.
Güçlü şifre için: ^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$ regex'i kullanılabilir. En az 8 karakter, büyük/küçük harf, rakam ve özel karakter gerektirir.
Regex meta karakterleri: . (herhangi bir karakter), * (0 veya daha fazla), + (1 veya daha fazla), ? (0 veya 1), ^ (satır başı), $ (satır sonu), [] (karakter sınıfı), () (grup), {} (tekrar), | (veya), \ (escape).
Karakter sınıfları: \d (rakam 0-9), \D (rakam dışı), \w (kelime karakteri: a-z, A-Z, 0-9, _), \W (kelime dışı), \s (boşluk), \S (boşluk dışı), [abc] (a, b veya c), [a-z] (a'dan z'ye).
Quantifiers: * (0 veya daha fazla), + (1 veya daha fazla), ? (0 veya 1), {n} (tam n kez), {n,} (en az n kez), {n,m} (n ile m arasında). Örneğin: \d{3} tam 3 rakam, \d{2,4} 2-4 rakam.
Lookahead (?=...): Sonrasını kontrol eder, eşleştirmez. Negative lookahead (?!...): Sonrasının olmadığını kontrol eder. Lookbehind (?<=...): Öncesini kontrol eder. Negative lookbehind (?<...): Öncesinin olmadığını kontrol eder.
Greedy (aç): Mümkün olan en uzun eşleşmeyi yapar (*, +, ?, {}). Lazy (tembel): Mümkün olan en kısa eşleşmeyi yapar (*?, +?, ??, {}?). Örneğin: <.*> greedy, <.*?> lazy.
Meta karakterleri literal olarak kullanmak için \ (backslash) kullanılır. Örneğin: \. (nokta), \* (yıldız), \+ (artı), \? (soru işareti), \( (parantez). Örneğin: \d+\.\d+ (ondalık sayı).
Regex optimizasyonu için: 1) Gereksiz backtracking'i önleyin, 2) Lazy quantifiers kullanın, 3) Atomic groups kullanın, 4) Possessive quantifiers kullanın, 5) Compile edilmiş regex kullanın, 6) Basit regex'leri tercih edin.
ReDoS (Regular Expression Denial of Service), kötü niyetli input ile regex motorunu aşırı CPU tüketimine sokan bir güvenlik açığıdır. Önlemler: Input uzunluğunu sınırlayın, timeout ekleyin, iç içe quantifiers'dan kaçının, basit regex'ler kullanın.
Regex çoğu programlama dilinde desteklenir: JavaScript, Python, Java, C#, PHP, Ruby, Go, Rust, Perl, Swift, Kotlin. Her dilin kendi regex motoru ve sözdizimi vardır, ancak temel yapılar ortaktır.
JavaScript'te regex: const regex = /pattern/flags; veya new RegExp('pattern', 'flags'). Metotlar: test() (boolean), exec() (match array), match() (eşleşmeler), replace() (değiştir), search() (index), split() (böl).
Python'da regex: import re. Fonksiyonlar: re.match() (başlangıç), re.search() (arama), re.findall() (tümü), re.sub() (değiştir), re.split() (böl). Flags: re.IGNORECASE, re.MULTILINE, re.DOTALL.
Regex debug için: 1) HızlıTools Regex Tester kullanın, 2) Küçük parçalarla test edin, 3) Her kısmı ayrı test edin, 4) Eşleşme listesini inceleyin, 5) Capture groups'ları kontrol edin, 6) Flags'leri değiştirerek test edin.
Regex öğrenmek için: 1) HızlıTools Regex Tester ile pratik yapın, 2) Hazır pattern'leri inceleyin, 3) Regex101, RegExr gibi araçları kullanın, 4) 'Mastering Regular Expressions' kitabını okuyun, 5) RegexOne gibi interaktif kurslar alın.
Regex ile dosya araması: 1) Dosyayı okuyun, 2) Regex pattern oluşturun, 3) match() veya findall() kullanın, 4) Sonuçları işleyin. Komut satırında: grep, ack, ripgrep gibi araçlar kullanılabilir.
Regex ile veri çıkarma: 1) Capture groups kullanın, 2) Pattern'i veri formatına göre yazın, 3) match.groups() ile yakalanan verileri alın, 4) Gerekirse dönüştürün. Örneğin: (\d{2})\/(\d{2})\/(\d{4}) ile tarih çıkarma.
Regex ile metin değiştirme: replace() metodu kullanılır. Örneğin: text.replace(/\d+/g, 'X') tüm sayıları X ile değiştirir. Capture groups ile: text.replace(/(\w+)@(\w+)/g, '$1[at]$2') email formatını değiştirir.
Unicode desteği için u flag'i kullanılır. Örneğin: /\p{L}/u (tüm harfler), /\p{N}/u (tüm sayılar), /\p{Script=Latin}/u (Latin alfabesi). Türkçe karakterler için Unicode sınıfları kullanılabilir.
Regex güvenlik açıkları: 1) ReDoS (Regular Expression Denial of Service): Kötü niyetli input ile CPU tüketimi, 2) Catastrophic backtracking: İç içe quantifiers, 3) Input validation bypass: Yetersiz regex. Önlem: Lazy quantifiers, timeout, input sanitization.
HızlıTools Regex Tester: 1) %100 ücretsiz, 2) Türkçe arayüz, 3) Anlık test, 4) Renkli vurgulama, 5) 50+ hazır pattern, 6) Capture groups detayı, 7) Flags desteği, 8) Dark mode, 9) Klavye kısayolları, 10) Otomatik kayıt, 11) %100 güvenli (tarayıcıda işleme).
Evet, HızlıTools Regex Tester, Regex101'e güçlü bir alternatiftir. Türkçe arayüz, 50+ hazır pattern, 5 renkli vurgulama, JSON export, otomatik kayıt gibi ek özellikler sunar. Tüm işlemler tarayıcınızda yapılır, verileriniz sunucuya gitmez.
Türkçe karakterler için u flag'i kullanın ve karakter sınıflarında ç, ğ, ı, ö, ş, ü karakterlerini ekleyin. Örneğin: /^[a-zA-ZçğıöşüÇĞİÖŞÜ]+$/u. Alternatif olarak \p{L} Unicode sınıfı tüm harfleri yakalar.
Basit HTML parsing için regex kullanılabilir, ancak karmaşık HTML için DOM parser önerilir. Regex ile HTML tag'leri, attribute'ları ve metin içeriği çıkarılabilir. Ancak nested tag'ler ve edge case'ler için DOM parser daha güvenlidir.
HızlıTools'ta Regex Tester dışında birçok geliştirici aracı bulabilirsiniz:
HızlıTools, %100 Türk yapımı bir ücretsiz online araç platformudur. Yazılımcılar, tasarımcılar, öğrenciler ve profesyoneller için geliştirilmiş 300 araç sunar. Tüm araçlar tarayıcınızda çalışır, verileriniz sunucuya gönderilmez. Gizlilik ve güvenlik önceliğimizdir.
Platformumuz KVKK ve GDPR uyumludur. Hizmetin devamlılığı, kullanıcı tercihine bağlı sınırlı reklamlarla desteklenmektedir.
Girdiler doğrulandıktan sonra araç, seçilen değerleri kendi işlem kurallarına göre değerlendirir ve sonucu anlaşılır bir özet halinde gösterir.
Örnek değerleri girerek sonucu oluşturabilir, ardından kendi değerlerinizle karşılaştırabilirsiniz.
Sonucu farklı bir örnekle yeniden hesaplayın ve önemli kararlarda resmî kaynak veya üretici verisiyle karşılaştırın.