Metinlerde belirli desenleri (pattern) bulmak, değiştirmek veya doğrulamak istediğinizde devreye Regex (Regular Expression) yani Düzenli İfade girer.
Regex, basit arama işlemlerinden karmaşık metin analizlerine kadar birçok alanda kullanılan güçlü bir dil yapısıdır.
Regex (Regular Expression), metin içinde belirli karakter dizilerini tanımlamak için kullanılan bir modelleme (pattern matching) yöntemidir.
Kısaca, “belirli kurallara uyan metinleri bulma ve işleme aracı” olarak tanımlanabilir.
Örneğin:
Bir e-posta adresini doğrulamak
Telefon numaralarını tespit etmek
Belirli kelimeleri bulup değiştirmek
Log dosyalarından IP adreslerini ayıklamak
gibi işlemlerde Regex kullanılır.
Regex, veriler üzerinde otomatik filtreleme, doğrulama ve düzenleme işlemlerini kolaylaştırır.
Manuel aramalar yerine desen tanımlayarak yüzlerce metni bir komutla tarayabilirsiniz.
Kullanım alanları:
Yazılım geliştirme (örnek: Python, JavaScript, PHP)
Veri analizi
Sistem yönetimi (log analizleri)
Form doğrulama
Web scraping (veri çekme işlemleri)
Regex, özellikle büyük veri kümelerinde hız kazandırır ve hata payını azaltır.
Regex ifadeleri, özel karakterler ve semboller kullanılarak oluşturulur.
Aşağıdaki tablo, en temel Regex sembollerini açıklar:
| Sembol | Anlamı | Örnek Kullanım |
|---|---|---|
. |
Herhangi bir karakter | a.c → “abc”, “axc” eşleşir |
* |
0 veya daha fazla tekrar | go* → “g”, “go”, “goo” |
+ |
En az 1 tekrar | go+ → “go”, “goo”, “gooo” |
? |
0 veya 1 tekrar | colou?r → “color”, “colour” |
[] |
Belirli karakter grubu | [aeiou] → sesli harfler |
[^] |
Hariç tutma | [^0-9] → rakam olmayanlar |
{n,m} |
Tekrar sayısı aralığı | a{2,4} → “aa”, “aaa”, “aaaa” |
^ |
Satır başı | ^abc → “abc” ile başlayan |
$ |
Satır sonu | xyz$ → “xyz” ile biten |
\d |
Rakam | \d+ → “123”, “45” |
\w |
Harf veya rakam | \w+ → “abc123” |
\s |
Boşluk karakteri | \s+ → “ ” veya tab boşluğu |
Regex, hemen her programlama dili ve sistem aracında desteklenir.
Kullanıldığı başlıca ortamlar:
Programlama dilleri: Python, JavaScript, PHP, C#, Java
Metin editörleri: Visual Studio Code, Sublime Text, Notepad++
Komut satırı araçları: grep, sed, awk
Veritabanı sorguları: MySQL REGEXP fonksiyonu
IDE ve log analiz araçları: JetBrains, Elastic Stack (ELK)
Karmaşık ifadeleri test etmeden canlı sistemlerde kullanmayın.
Performans sorunlarına neden olabileceği için aşırı geniş (greedy) desenlerden kaçının.
Regex101.com veya RegExr.com gibi araçlarla desenlerinizi test edin.
Kodunuzu okunabilir kılmak için gerekirse açıklama satırları ekleyin.
? karakteri “lazy matching” (tembel eşleşme) sağlar ve gereksiz uzun eşleşmeleri engeller.
Gruplama ( ) kullanarak aynı deseni birden fazla yerde referans gösterebilirsiniz.
| operatörü “veya” anlamına gelir (örnek: cat|dog hem “cat” hem “dog” ile eşleşir).
Regex’i büyük-küçük harf duyarsız hale getirmek için i bayrağını (flag) kullanın.