Regular Expressions (Regex): Düzenli İfadeler ile Veri Doğrulama

  • Konbuyu başlatan Konbuyu başlatan irfo
  • Başlangıç tarihi Başlangıç tarihi

irfo

Moderatör
Katılım
7 Ocak 2026
Mesajlar
290
Tepkime puanı
2
Puanları
18
Regex, bir metin içindeki karakter dizilimlerini tanımlayan sihirli bir formüldür. Örneğin, bir metnin "e-posta formatında" olup olmadığını veya bir şifrenin "en az bir büyük harf ve bir rakam" içerip içermediğini Regex ile tek satırda kontrol edebilirsiniz.

1. Temel Regex Fonksiyonları​


PHP'de en sık kullanılan iki Regex fonksiyonu şunlardır:

  • [] preg_match(): Bir desenin metin içinde var olup olmadığını kontrol eder (0 veya 1 döner).
    [] preg_replace(): Desene uyan kısımları başka bir metinle değiştirir.

2. Regex Desen Karakterleri (Cheat Sheet)​


Regex yazarken kullanılan bazı temel operatörler ve anlamları:

KarakterAnlamıÖrnek
^Metnin başlangıcı^A (A ile başlayan)
Metninbitis\ciz (z ile biten)
[0-9]Herhangi bir rakamRakam kontrolü[a-zA-Z]Herhangi bir harfHarf kontrolü
{n,m}Tekrar sayısı{3,5} (3 ile 5 karakter arası)

[TR]

3. Uygulama: E-Posta ve Telefon Doğrulama​


Kullanıcıdan gelen verinin formatını kontrol etmek için Regex en güvenilir yoldur.

PHP:
<?php
// 1. E-Posta Doğrulama
$email = "[email protected]";
email_deseni = &quot;/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}/";

if (preg_match($email_deseni, $email)) {
echo "E-posta formatı doğru.";
} else {
echo "Geçersiz e-posta!";
}

// 2. Telefon Doğrulama (Örn: 05xx xxx xx xx)
$telefon = "0532 123 45 67";
tel_deseni = &quot;/^05[0-9]{2}\s[0-9]{3}\s[0-9]{2}\s[0-9]{2}/";

if (preg_match($tel_deseni, $telefon)) {
echo "Telefon formatı doğru.";
}
?>

4. Veri Ayıklama ve Temizleme​


Regex sadece doğrulama değil, aynı zamanda istenmeyen karakterleri temizlemek için de kullanılır. Örneğin, bir metindeki tüm HTML etiketlerini veya rakam dışı karakterleri silebilirsiniz.

PHP:
// Metindeki tüm rakamları temizle
$metin = "Bugün 16 Şubat 2026";
$temiz_metin = preg_replace("/[0-9]/", "", $metin);
echo $temiz_metin; // Çıktı: Bugün Şubat

5. Dikkat Edilmesi Gerekenler​



  • [] Delimiters (Sınırlayıcılar): Desenler her zaman bir sınırlayıcı ile başlar ve biter (genelde / kullanılır). Örn: /desen/.
    [] Performans: Çok karmaşık Regex desenleri, çok büyük metinlerde sunucuyu yorabilir. Basit işlemler için str_replace() gibi standart fonksiyonları tercih edin.
  • Case Sensitivity: Desenin sonuna i harfi eklerseniz (Örn: /abc/i), büyük/küçük harf duyarlılığı ortadan kalkar.

Sonuç​


Regex öğrenmek başlangıçta zor gelse de, bir yazılımcının "İsviçre Çakısı" gibidir. Form doğrulamadan bot yazımına kadar her alanda işinizi saniyeler içinde halletmenizi sağlar. Karmaşık desenler yazmak yerine, sık kullanılan desenleri (e-posta, URL, şifre) bir kenarda not olarak tutmak işinizi kolaylaştıracaktır.
 
Geri
Üst