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
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;const isValidEmail = emailRegex.test("mail-adresi@mail.com");Parola doğrulama
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;const isValidPassword = passwordRegex.test("HerhangiBirSifre");Telefon numarası doğrulama
const phoneRegex = /^\+(?:[0-9] ?){6,14}[0-9]$/;const isValidPhone = phoneRegex.test("+905555555555");URL doğrulama
const urlRegex = /^(http(s)?:\/\/)?(www\.)?[a-z0-9]+\.[a-z]+(\/[^\s]*)?$/i;const isValidUrl = urlRegex.test("https://www.google.com");Emoji yakalama
const text = "😀 Bu bir örnek metindir 😃";const emojiRegex = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g;const emojis = text.match(emojiRegex); // ["😀", "😃"]Kelime arama
const text = "Bu bir örnek cümledir";const wordRegex = /örnek/;const isWordFound = wordRegex.test(text);Harf sayısını bulma
const text = "Bu bir örnek cümledir";const letterRegex = /[a-zA-Z]/g;const letterCount = text.match(letterRegex).length; // 17İfade değiştirme
const text = "Bu bir örnek cümledir";const replaceRegex = /örnek/;const newText = text.replace(replaceRegex, "deneme"); // "Bu bir deneme cümledir"Sayıları bulma
const text = "3 elmalar, 5 armutlar, ve 10 portakallar.";const numberRegex = /\d+/g;const numbers = text.match(numberRegex); // ["3", "5", "10"]Boşlukları kaldırma
const text = " Bu bir örnek cümledir. ";const trimRegex = /^\s+|\s+$/g;const trimmedText = text.replace(trimRegex, ""); // "Bu bir örnek cümledir."Virgülle ayrılmamış sayılar için virgülle ayırma formatı
const number = "1234567";const formattedNumber = number.replace(/\d(?=(\d{3})+$)/g, "$&,"); // "1,234,567"Virgülden sonrasını alma
const number = 12.345;const decimalsRegex = /\.\d+/;const decimals = number.toString().match(decimalsRegex); // [".345"]Tarih biçimlendirme
const date = new Date();const formattedDate = date.toLocaleDateString().replace(/\//g, "-"); // "09-01-2023"Alt çizgi ile ayrılmış kelime formatı
const text = "Bu bir örnek cümledir";const 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.

Mustafa Kürşad Başer
Senior Software Engineer
A passionate software engineer who enjoys creating elegant solutions to complex problems. Beyond coding, I am deeply interested in exploring the intersections of technology, art, and human consciousness.

