RegEx Rehberi ve Kullanım Örnekleri
Regular Expression Nedir?
Regular Expression (RegEx ya da RegExp) bir metin parçasını tanımlamak veya aramak için kullanılan bir dizi karakter dizisidir. Bu dizi, özel karakterler ve normal karakterlerden oluşur ve birçok programlama dili ve metin editörü tarafından desteklenir. RegEx, özellikle veri sıralama, veri işleme ve metin işleme işlemlerinde oldukça yararlıdır. Biraz kafa karıştırıcı olabilir, ancak öğrendikten sonra RegEx'in ne kadar güçlü bir araç olduğunu keşfedeceksiniz, gelin devam edelim.
RegEx, bir dizi özel karakter ve normal karakterlerden oluşur. Özel karakterler, metin içinde belirli bir anlama sahiptir ve bir arama veya eşleştirme işlemi gerçekleştirmek için kullanılır. Bazı özel karakterler arasında . (nokta), * (yıldız), + (artı), ^ (başlangıç) ve $ (bitiş) gibi karakterler yer alır.
RegEx yazarken dikkat edilmesi gereken birkaç nokta vardır:
- RegEx büyük harf/küçük harf duyarlıdır.
- Özel karakterlerin anlamlarını kullanmak için, bu karakterlerin önüne ters bölü işareti "\" konulmalıdır.
- Belirli bir sayıda karakter aramak için, karakterlerin yanına sayı eklenir. Örneğin, "/hello{2}/" RegEx'i, "hello" kelimesinin yan yana iki defa geçtiği metin parçalarını bulur.
RegEx Kullanım Alanları
RegEx, birçok farklı amaç için kullanılabilir. İşte RegEx kullanım örneklerinden bazıları:
- Metin arama: RegEx, bir metin parçasında belirli bir kelime veya ifade aramak için kullanılabilir. Örneğin, "/hello/" RegEx'i, bir metin parçasında "hello" kelimesini arar.
- Veri sıralama: RegEx, verileri sıralamak ve belirli bir desene göre filtrelemek için kullanılabilir. Örneğin, "/^[A-Za-z]+$/", sadece harflerden oluşan bir kelimeyi filtreleyebilir.
- Veri değiştirme: RegEx, belirli bir desene göre bir metin parçasında yer değiştirmek veya değiştirmek için kullanılabilir. Örneğin, "/(bir|iki|üç)/" RegEx'i, bir metin parçasındaki "bir", "iki" veya "üç" kelimelerini başka bir kelimeyle değiştirebilir.
- Form doğrulama: RegEx, web formu girişlerini doğrulamak için kullanılabilir. Örneğin, "/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Z]{2,}$/i" RegEx'i, bir e-posta adresinin doğruluğunu kontrol eder.
- Metin işleme: RegEx, metin işleme işlemleri için kullanılabilir. Örneğin, "/\b[A-Z]{3}\b/" RegEx'i, metin parçasındaki üç büyük harfli kelimeyi bulabilir.
- Programlama: RegEx, programlama dillerinde sıklıkla kullanılır. Örneğin, Python'da, düzenli ifadeler (RegEx) modülü re, Perl'de RegEx ifadeleri doğrudan dilin syntax'ına (sözdizimine) dahil edilmiştir.
- Güvenlik: RegEx, güvenlik alanında da kullanılabilir. Örneğin, web uygulamalarındaki girdileri filtrelemek ve sınırlandırmak için kullanılabilir.
- Otomatik düzenleme: RegEx, büyük veri kümelerindeki verileri otomatik olarak düzenlemek için kullanılabilir. Örneğin, RegEx, belirli bir formatta yazılmış yüzlerce belgeyi otomatik olarak düzenleyebilir.
- Yapılandırma dosyaları: RegEx, yapılandırma dosyaları gibi metin tabanlı dosyaları düzenlemek için kullanılabilir. Örneğin, Apache sunucusu yapılandırma dosyaları gibi dosyalarda kullanılan RegEx ifadeleri, dosyaların doğru bir şekilde yapılandırılmasına yardımcı olabilir.
- Veri dönüştürme: RegEx, farklı formatlardaki verileri birbirine dönüştürmek için kullanılabilir. Örneğin, bir tarih formatını başka bir tarih formatına dönüştürmek için RegEx kullanabilirsiniz.
Javascript & Node.js İçin Örnek RegEx Komutları:
JavaScript ve Node.js, RegEx ifadelerini destekler. İşte JavaScript veya Node.js için kullanılabilecek birkaç RegEx örneği:
E-posta adresi doğrulama:
1const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
2const isValidEmail = emailRegex.test("mail-adresi@mail.com");
Parola doğrulama:
1const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;
2const isValidPassword = passwordRegex.test("HerhangiBirSifre");
Telefon numarası doğrulama:
1const phoneRegex = /^\+(?:[0-9] ?){6,14}[0-9]$/;
2const isValidPhone = phoneRegex.test("+905555555555");
URL doğrulama:
1const urlRegex = /^(http(s)?:\/\/)?(www\.)?[a-z0-9]+\.[a-z]+(\/[^\s]*)?$/i;
2const isValidUrl = urlRegex.test("https://www.google.com");
Emoji yakalama:
1const text = "😀 Bu bir örnek metindir 😃";
2const emojiRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;
3const emojis = text.match(emojiRegex); // ["😀", "😃"]
Kelime arama:
1const text = "Bu bir örnek cümledir";
2const wordRegex = /örnek/;
3const isWordFound = wordRegex.test(text);
Harf sayısını bulma:
1const text = "Bu bir örnek cümledir";
2const letterRegex = /[a-zA-Z]/g;
3const letterCount = text.match(letterRegex).length; // 17
İfade değiştirme:
1const text = "Bu bir örnek cümledir";
2const replaceRegex = /örnek/;
3const newText = text.replace(replaceRegex, "deneme"); // "Bu bir deneme cümledir"
Sayıları bulma:
1const text = "3 elmalar, 5 armutlar, ve 10 portakallar.";
2const numberRegex = /\d+/g;
3const numbers = text.match(numberRegex); // ["3", "5", "10"]
Boşlukları kaldırma:
1const text = " Bu bir örnek cümledir. ";
2const trimRegex = /^\s+|\s+$/g;
3const trimmedText = text.replace(trimRegex, ""); // "Bu bir örnek cümledir."
Virgülle ayrılmamış sayılar için virgülle ayırma formatı:
1const number = "1234567";
2const formattedNumber = number.replace(/\d(?=(\d{3})+$)/g, "$&,"); // "1,234,567"
Virgülden sonrasını alma:
1const number = 12.345;
2const decimalsRegex = /\.\d+/;
3const decimals = number.toString().match(decimalsRegex); // [".345"]
Tarih biçimlendirme:
1const date = new Date();
2const formattedDate = date.toLocaleDateString().replace(/\//g, "-"); // "09-01-2023"
Alt çizgi ile ayrılmış kelime formatı:
1const text = "Bu bir örnek cümledir";
2const formattedText = text.replace(/\b(\w+)\b/g, "$1_"); // "Bu_bir_örnek_cümledir_"
Sonuç
Bu rehber, Regular Expressions (RegEx ya da RegExp olarak da bilinir. Türkçe: Düzenli İfadeler) hakkında kapsamlı bir kılavuz sunar. İlk olarak, regex nedir, neden kullanılır ve hangi durumlarda kullanılır gibi temel konulara değinir. Daha sonra, regex öğelerini, metakarakterleri ve temel ifadeleri detaylı bir şekilde açıklar ve örnekler verir.
Rehber ayrıca, regex kullanarak nasıl eşleşme yapılacağı, karakter sınıfları ve özel karakterler gibi konuları ele alır. Ayrıca, regex'teki alternatifler, tekrarlayıcılar ve gruplar gibi daha karmaşık konulara da değinir.
Sonuç olarak, bu rehber, regex hakkında tam bir anlayış sağlamak için ihtiyacınız olan bilgiyi içerir. Okuyuculara regex kullanarak metin işleme ve veri analizi yapmak için gerekli araçları ve becerileri kazandırır.

Yazılım Mühendisi — Dijital Zanaatkâr
Karmaşık sorunlara zarif çözümler üretmekten keyif alan, tutkulu bir yazılım mühendisi. Kodlamanın ötesinde, teknoloji, sanat ve insan bilincinin kesişim noktalarını keşfetmekle derinden ilgileniyor.