PHP ile Regular Expression (Regex): Desenlerle Veri Doğrulama Rehberi
🧠 PHP ile Regular Expression (Regex): Desenlerle Veri Doğrulama Rehberi
Web uygulamalarında kullanıcıdan alınan verileri doğrulamak veya metin içinde belirli bir kalıbı bulmak isteriz.
İşte tam bu noktada Regular Expression (Regex) devreye girer.
PHP’de regex, metinlerde arama, eşleşme, doğrulama ve değiştirme işlemlerinde kullanılan güçlü bir araçtır.
Bu yazıda regex’in mantığını, PHP’de nasıl kullanıldığını ve pratik örnekleri öğreneceğiz. 🚀
🔹 1. Regular Expression (Regex) Nedir?
Regex, “regular expression” yani düzenli ifade anlamına gelir.
Metinlerde belirli desenleri tanımlamak için kullanılır.
Örneğin:
-
Bir e-posta adresi doğru formatta mı?
-
Bir telefon numarası 10 haneli mi?
-
Metin “php” kelimesini içeriyor mu?
Bunların hepsi regex ile kolayca kontrol edilir.
⚙️ 2. PHP’de Regex Nasıl Kullanılır?
PHP’de regex işlemleri için genellikle şu fonksiyonlar kullanılır:
| Fonksiyon | Açıklama |
|---|---|
preg_match() | Desen eşleşmesi var mı kontrol eder |
preg_match_all() | Tüm eşleşmeleri bulur |
preg_replace() | Eşleşen değerleri değiştirir |
preg_split() | Metni regex desenine göre böler |
Regex deseni her zaman / işaretiyle başlar ve biter.
Örnek:
Çıktı:
🔸 3. Regex Desen Temelleri
| Sembol | Anlamı | Örnek |
|---|---|---|
. | Herhangi bir karakter | a.b → “acb”, “a1b” |
^ | Satır başı | ^Merhaba |
$ | Satır sonu | PHP$ |
* | 0 veya daha fazla tekrar | a* |
+ | 1 veya daha fazla tekrar | a+ |
? | 0 veya 1 tekrar | colou?r → “color”, “colour” |
[] | Belirli karakter kümesi | [abc] → “a” veya “b” veya “c” |
[^] | Hariç karakterler | [^0-9] → rakam olmayan |
{n} | Tam olarak n tekrar | [0-9]{3} → “123” |
{n,} | En az n tekrar | [0-9]{2,} |
{n,m} | n ile m arası tekrar | [0-9]{2,4} |
| ` | ` | Veya (OR) |
() | Grup oluşturur | (abc)+ |
🧩 4. Örnek 1: Email Doğrulama
Açıklama:
-
^→ başlangıç -
[a-z0-9._-]+→ kullanıcı adı kısmı -
@→ zorunlu “@” işareti -
[a-z0-9.-]+→ alan adı -
\.→ nokta -
[a-z]{2,4}→ uzantı (ör. com, net, org) -
$→ bitiş
📱 5. Örnek 2: Türk Telefon Numarası Doğrulama
Açıklama:
-
^0→ 0 ile başlamalı -
[0-9]{10}→ ardından 10 rakam gelmeli -
$→ bitiş
🔢 6. Örnek 3: Sadece Sayı Kontrolü
🔡 7. Örnek 4: Sadece Harf (Türkçe Karakterler Dahil)
Açıklama:
-
\s→ boşluk karakterine izin verir -
u→ UTF-8 desteği (Türkçe karakterler için şart)
🧮 8. Örnek 5: Şifre Güvenlik Kontrolü
Şifre en az 8 karakter, bir büyük harf, bir küçük harf, bir rakam ve bir özel karakter içermeli.
Açıklama:
-
(?=.*[a-z])→ en az bir küçük harf -
(?=.*[A-Z])→ en az bir büyük harf -
(?=.*\d)→ en az bir sayı -
(?=.*[@$!%*?&])→ özel karakter -
{8,}→ en az 8 karakter
🔍 9. Örnek 6: URL Kontrolü
✂️ 10. Örnek 7: Metin Değiştirme (preg_replace())
Çıktı:
🔠 11. Örnek 8: Kelimeleri Bölme (preg_split())
Çıktı:
🧾 12. preg_match_all() ile Tüm Eşleşmeleri Bulma
Çıktı:
🧠 13. Regex Kullanırken Dikkat Edilmesi Gerekenler
✅ Desenlerin başına ve sonuna / eklemeyi unutma.
✅ i bayrağı → büyük-küçük harf duyarsız arama yapar.
✅ u bayrağı → UTF-8 (Türkçe karakterler) desteği sağlar.
✅ Karmaşık desenlerde yorum satırları veya regex101.com gibi test araçlarını kullan.
💡 14. PHP Regex Bayrakları (Modifiers)
| Bayrak | Açıklama |
|---|---|
i | Büyük/küçük harf duyarsız |
m | Çok satırlı arama (multi-line) |
s | Satır sonlarını da . içine dahil eder |
u | UTF-8 desteği sağlar |
g | Global (tüm eşleşmeleri bulur – PHP’de preg_match_all kullanılır) |
🏁 Sonuç
Regex, PHP’de veri doğrulama ve metin işleme için en güçlü araçlardan biridir.
İster bir e-posta doğrulama, ister şifre kontrolü, ister veri temizleme işlemi yap;
regex ile bunu birkaç satır kodla çözebilirsin. ⚡
Özet:
-
🔍
preg_match()→ arama -
✂️
preg_replace()→ değiştirme -
📚
preg_match_all()→ tüm eşleşmeleri bul -
🧩
preg_split()→ metni parçala
Regex ilk başta karmaşık görünse de pratik yaptıkça vazgeçilmez hale gelir. 💪


