Regex hızlı kılavuzu
Düzenli ifadeler, söz dizimini ezberlemektense aramanın daha kolay olduğu kadar özdür. Bu sayfa, her satır için çalışan bir örnekle birlikte, bunların tümünü tek ekranda sunar — sınıflar, niceleyiciler, sabitleyiciler, gruplar, lookaround, kaçışlama ve bayraklar.
Kullanılan sürüm JavaScript'tir; tarayıcınızda çalışan ve bu sitedeki regex test aracının kullandığı sürüm budur. Çoğu Python, Java, Go ve PCRE'de aynıdır; sürümler ayrıştığında, ayrımlar uç noktalarda olur — lookbehind desteği, adlandırılmış grup söz dizimi ve \d'nin "ASCII rakamı" mı yoksa "herhangi bir Unicode rakamı" mı anlamına geldiği.
Sürprizlerin çoğunun iki nedeni vardır. Niceleyiciler açgözlüdür: alabildikleri her şeyi alır ve yalnızca desenin geri kalanı başarısız olduğunda geri verirler; bu yüzden <.+> iki etiketi yutar, <.+?> yutmaz. Ve alternasyon hepsinden gevşek bağlanır, dolayısıyla ^a|b$ "a ile başlar ya da b ile biter" anlamına gelir — çoğu kişinin yazarken kastettiği şey değil.
Karakter sınıfları
11Kısaltmalar, u bayrağını ekleyip Unicode özellik kaçışları kullanmadıkça yalnızca ASCII'dir.
| Söz dizimi | Anlam | Örnek |
|---|---|---|
| . | Satır sonu dışında herhangi bir karakterSatır sonlarını da eşleştirmesi için s bayrağını ekleyin. | /a.c/"abc" → "abc" |
| \d | Bir rakam, 0–9 | /\d+/"order 42" → "42" |
| \D | Rakam olmayan herhangi bir şey | /\D+/"42abc" → "abc" |
| \w | Harf, rakam ya da alt çizgiYalnızca ASCII — "é", \w değildir. | /\w+/"user_1!" → "user_1" |
| \W | \w'nin eşleştirmediği herhangi bir şey | /\W+/"a++b" → "++" |
| \s | Sekmeler ve satır sonları dâhil herhangi bir boşluk | /\s+/"a \t b" → " \t " |
| \S | Boşluk olmayan herhangi bir karakter | /\S+/" hi" → "hi" |
| [abc] | Listelenen karakterlerden herhangi biri | /[aeiou]/"rhythm and" → "a" |
| [^abc] | Listelenenler dışında herhangi bir karakter | /[^aeiou ]+/"aeiou xyz" → "xyz" |
| [a-z] | Bir karakter aralığı | /[a-f]+/"zzabcz" → "abc" |
| \p{L} | Herhangi bir Unicode harfi (u bayrağı gerekir) | /\p{L}+/"42 café" → "café" |
Niceleyiciler
7Bunların tümü varsayılan olarak açgözlüdür: alabildikleri kadar alır ve yalnızca desenin geri kalanı başarısız olursa geri verirler.
| Söz dizimi | Anlam | Örnek |
|---|---|---|
| * | Sıfır ya da daha fazla | /ab*/"a" → "a" |
| + | Bir ya da daha fazla | /ab+/"abbb" → "abbb" |
| ? | Sıfır ya da bir — isteğe bağlı yapar | /colou?r/"color" → "color" |
| {3} | Tam olarak üç | /\d{3}/"id 12345" → "123" |
| {2,} | İki ya da daha fazla | /a{2,}/"aaa" → "aaa" |
| {2,4} | İki ile dört arasında | /a{2,4}/"aaaaa" → "aaaa" |
| *? | Tembel — mümkün olduğunca az alırAçgözlü <.+> her iki etiketi de yutardı. | /<.+?>/"<a><b>" → "<a>" |
Sabitleyiciler ve sınırlar
4Bunlar bir karakteri değil bir konumu eşleştirir, bu yüzden hiçbir şey tüketmezler.
| Söz dizimi | Anlam | Örnek |
|---|---|---|
| ^ | Dizenin başı ya da m bayrağıyla bir satırın başı | /^a/"abc" → "a" |
| $ | Dizenin sonu ya da m bayrağıyla bir satırın sonu | /c$/"abc" → "c" |
| \b | Bir sözcük sınırı"cat"in "concatenate" içinde eşleşmesini durduran şey budur. | /\bcat\b/"the cat sat" → "cat" |
| \B | Sözcük sınırı değil | /\Bcat/"concatenate" → "cat" |
Gruplar ve alternasyon
5| Söz dizimi | Anlam | Örnek |
|---|---|---|
| (abc) | Yakalayan grup — değiştirme için hatırlanır | /(\d+)-(\d+)/"10-20" → "10-20" |
| (?:abc) | Yakalamadan gruplamaYalnızca gruplamaya ihtiyacınız olduğunda bunu kullanın; yakalama numaralarını anlamlı tutar. | /(?:ab)+/"abab" → "abab" |
| (?<name>…) | Adlandırılmış yakalayan grup | /(?<year>\d{4})/"in 2026" → "2026" |
| a|b | Her iki taraf — alternasyonAlternasyonun önceliği en düşüktür: ^a|b$, "^(a|b)$" değil, "^a" ya da "b$" demektir. | /cat|dog/"one dog" → "dog" |
| \1 | İlk gruba geri başvuru | /(\w)\1/"letter" → "tt" |
Lookaround
4Bir konumu neyin çevrelediğine dair savlar. Kendileri hiçbir şeyi eşleştirmez, bu da onları birleştirmeyi güvenli kılan şeydir.
| Söz dizimi | Anlam | Örnek |
|---|---|---|
| (?=…) | Lookahead — ardından bu gelir | /\d+(?= kg)/"80 kg" → "80" |
| (?!…) | Olumsuz lookahead — ardından bu gelmez | /\d+(?! kg)/"80 lb" → "80" |
| (?<=…) | Lookbehind — öncesinde bu gelir | /(?<=\$)\d+/"costs $40" → "40" |
| (?<!…) | Olumsuz lookbehind — öncesinde bu gelmez | /(?<!\$)\b\d+/"about 40" → "40" |
Kaçışlama
5Bu on iki karakter, gerçek anlamıyla alınmak için ters eğik çizgiye ihtiyaç duyanlardır.
| Söz dizimi | Anlam | Örnek |
|---|---|---|
| \. | Gerçek bir nokta | /\d\.\d/"v2.5" → "2.5" |
| \\ | Gerçek bir ters eğik çizgi | /\\/"C:\\dir" → "\\" |
| \n | Bir satır beslemesi | /a\nb/"a\nb" → "a\nb" |
| \t | Bir sekme | /a\tb/"a\tb" → "a\tb" |
| \uFFFF | Kod noktasına göre bir karakter | /\u00e9/"café" → "é" |
Bayraklar
6| Bayrak | Ad | Anlam |
|---|---|---|
| g | Global | Yalnızca ilkini değil, her eşleşmeyi bulur. |
| i | Büyük/küçük harfi yok say | Büyük ya da küçük harften bağımsız olarak eşleştirir. |
| m | Çok satırlı | ^ ve $ işaretlerinin yalnızca dizenin uçlarında değil, her satır sonunda eşleşmesini sağlar. |
| s | Dot all | . işaretinin satır sonlarını da eşleştirmesine izin verir. |
| u | Unicode | Deseni kod noktaları olarak ele alır ve \p{…} özellik kaçışlarını etkinleştirir. |
| y | Sticky | Yalnızca tam olarak lastIndex konumunda eşleşir, asla ileriye doğru arama yapmaz. |