ToolHub
View All Posts

Regex Hile Sayfası: En Önemli Desenler ve Örnekler

Düzenli ifadeler (regex), metin işleme, veri doğrulama ve desen eşleştirme için en güçlü araçlardan biridir. Doğru kullanıldığında, bir regex deseni düzinelerce satırlık geleneksel kodu bir satırlık kısa bir ifadeyle değiştirebilir. Bu hile sayfası, hemen kullanabileceğiniz pratik örneklerle birlikte en önemli regex sözdizimini kapsar.

Regex Nedir?

Karakter Sınıfı Kısayolları

DesenAçıklamaÖrnek Eşleşme
.Yeni satır hariç herhangi bir karaktera, 1, @
\dHerhangi bir rakam (0-9)0, 5, 9
\DRakam olmayan karaktera, B, !
\wSözcük karakteri (harf, rakam, alt çizgi)a, Z, 9, _
\WSözcük olmayan karakter@, #, boşluk
\sBoşluk karakteri (boşluk, sekme, yeni satır)boşluk, sekme
\SBoşluk olmayan karaktera, 1, *
\bSözcük sınırımerhaba dünya
\BSözcük sınırı olmayanmerhaba dünya
[abc]a, b veya c'den herhangi biria, b, c

Açgözlü ve İsteksiz Niceleyiciler

DesenAçıklamaÖrnek Eşleşme
[^abc]a, b veya c dışında herhangi bir karakterd, e, f
[a-z]a'dan z'ye herhangi bir küçük harfa, m, z
[A-Z]A'dan Z'ye herhangi bir büyük harfA, M, Z
[0-9]0'dan 9'a herhangi bir rakam0, 5, 9
[a-zA-Z]Herhangi bir harf (büyük veya küçük)a, B, z
[a-zA-Z0-9]Herhangi bir alfanümerik karaktera, B, 7

Yakalama Grupları

AnlamDesenAçıklama
*0 veya daha fazla keza* → "", "a", "aaa"
+1 veya daha fazla keza+ → "a", "aaa"
?0 veya 1 kez (isteğe bağlı)renk? → "renk", "renk"
{n}Tam olarak n keza{3} → "aaa"

Yakalamayan Gruplar

ÖzellikJavaScriptPython
{n,}n veya daha fazla keza{2,} → "aa", "aaa"
{n,m}n ile m kez arasıa{2,4} → "aa", "aaa", "aaaa"
AçgözlüMümkün olduğunca çok eşleşir.* → tüm dizeyi tüketir
İsteksiz (tembel)Mümkün olduğunca az eşleşir.*? → her seferinde bir karakter tüketir
SahipleniciEşleşir ve asla geri vermez (Java/PCRE).++ → aşırı eşleşir, geri izleme yok

Temel Regex Sözdizimi

Düzenli ifade (regex), metin desenlerini tanımlamak için kullanılan bir karakter dizisidir. E-posta adreslerini doğrulamak, URL'lerden veri çıkarmak, belirli formatlarla eşleşen dizeler bulmak ve metin arama ve değiştirme işlemleri gerçekleştirmek için regex kullanabilirsiniz.

Parantez İçinde Geri Referans

Regex, neredeyse her programlama dilinde yerel olarak desteklenir: JavaScript, Python, Java, PHP, Ruby, Go, Rust, C# ve daha fazlası. Çoğu uygulama, tüm diller arasında tutarlı desenler yazmanıza olanak tanıyan Perl uyumlu düzenli ifadeleri (PCRE) takip eder.

Pratik Regex Örnekleri

Regex güçlü olmasına rağmen, okunması ve bakımı zor olabilir. Karmaşık desenleri yorumlarla belgeleyin, karmaşık regex'i daha basit parçalara ayırın ve desenlerinizi kapsamlı bir şekilde test edin.

Regex nedir?

Karakter sınıfları, belirli bir konumda hangi karakterlerin eşleşebileceğini tanımlar. Köşeli parantez içinde listelenen en basit eşleşen karakterlerden, önceden tanımlanmış kısayollara kadar çeşitlilik gösterir.

Regex'te .* ne anlama gelir?

Niceleyiciler, önceki öğenin kaç kez görünmesi gerektiğini belirtir. Bu, regex'in en güçlü ancak en sık yanlış kullanılan özelliklerinden biridir.

Açgözlü ve isteksiz niceleyiciler arasındaki fark nedir?

Çapalar, dizenin içindeki konumlarla eşleşir, karakterlerle değil. Desen eşleşmesinin tam olarak nerede gerçekleşmesi gerektiğini belirtirler.

Regex'te ileriye bakış nasıl kullanılır?

Gruplandırma, birden çok karakteri tek bir birim olarak ele almanıza ve daha sonra yeniden kullanmak üzere eşleşen metni yakalamanıza olanak tanır.

Karakter Sınıfları

Regex'te özel karakterleri nasıl kaçırırım?

İleri ve geri bakış, içeriği tüketmeden desenin öncesinde ve sonrasında ne olduğuna bağlı olarak eşleşmeleri kontrol eden sıfır genişlikli iddialardır.

Greedy vs Lazy Matching

Tüm regex motorları aynı değildir. JavaScript, Python, Java ve PHP arasındaki farklılıkları anlamak, hata ayıklama saatlerini önleyebilir. İşte temel farklılıklar:

Hızlı Referans: \d = rakam, \w = sözcük karakteri, \s = boşluk, . = herhangi bir karakter, * = 0 veya daha fazla, + = 1 veya daha fazla, ^ = başlangıç, $ = bitiş, \b = sözcük sınırı, ( ) = yakalama grubu, (?: ) = yakalamayan grup, (?= ) = ileriye bakış.

Niceleyiciler

Çapalar ve Sınırlar

Regex desenlerinizi test etmeye hazır mısınız? Anında eşleşme vurgulama ve açıklama ile gerçek zamanlı regex testi sunan ücretsiz çevrimiçi regex test aracımızı kullanın.

Regex (düzenli ifade), metin desenlerini tanımlamak için kullanılan bir karakter dizisidir. Metin içinde belirli desenleri aramak, doğrulamak ve çıkarmak için bir desen eşleştirme dilidir. Regex, programlama, metin düzenleme ve veri işlemede yaygın olarak kullanılır.

Regex Test Aracını DeneRegex Cheat Sheet

Gruplandırma ve Yakalama

What is the difference between greedy and lazy regex matching?

.*, regex'te en yaygın desenlerden biridir. Nokta (.) yeni satır hariç herhangi bir karakterle eşleşir ve yıldız (*) önceki öğenin sıfır veya daha fazla kez görünebileceği anlamına gelir. Birlikte, .* herhangi bir karakter dizisiyle (boş dize dahil) eşleşir. Varsayılan olarak açgözlüdür, yani mümkün olduğunca çok eşleşmeye çalışır.

Are regular expressions the same across all programming languages?

Açgözlü niceleyiciler (.*, .+, .{n,}) mümkün olduğunca çok karakterle eşleşmeye çalışırken, isteksiz niceleyiciler (.*?, .+?, .{n,}?) mümkün olduğunca az karakterle eşleşir. Bu fark, HTML etiketleri veya tırnaklı dizeler gibi sınırlandırılmış içerikle eşleşirken çok önemlidir.

Can regex parse HTML or XML?

İleriye bakış, ana desenin bir parçası olarak tüketmeden bir desenin ardından ne geldiğini kontrol eden bir iddiadır. Pozitif ileriye bakış (?=...) belirli bir desenin gelmesi gerektiğini, negatif ileriye bakış (?!...) belirli bir desenin gelmemesi gerektiğini belirtir. Örneğin, \d+(?=\.\d{2}) yalnızca iki ondalık basamak takip ediyorsa rakamlarla eşleşir.

What are lookahead and lookbehind in regex?

Regex'te özel karakterleri kaçırmak için ters eğik çizgi kullanın. Ters eğik çizgi ile kaçırılması gereken karakterler şunlardır: . * + ? [ ] ( ) { } ^ $ | \ / . Örneğin, bir noktayla eşleşmek için \. kullanın, çünkü . özel bir karakterdir.

How do I make my regex case-insensitive?

Add the i flag after the closing delimiter to make the entire pattern case-insensitive. In JavaScript, use /pattern/i. In Python, use re.IGNORECASE or re.I as a flag. You can also use (?i) inline to make specific portions case-insensitive.

ToolHub's collection of 300+ free online tools including regex tester, cheat sheets, and more — no sign-up required.