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.
PHP'de en sık kullanılan iki Regex fonksiyonu şunlardır:
Regex yazarken kullanılan bazı temel operatörler ve anlamları:
[TR]
Kullanıcıdan gelen verinin formatını kontrol etmek için Regex en güvenilir yoldur.
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.
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.
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ı:
| Karakter | Anlamı | Örnek | |||
|---|---|---|---|---|---|
| ^ | Metnin başlangıcı | ^A (A ile başlayan) | |||
| Metninbitis\ci | z (z ile biten) | ||||
| [0-9] | Herhangi bir rakam | Rakam kontrolü | [a-zA-Z] | Herhangi bir harf | Harf 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 = "/^[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 = "/^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.