PHP preg_match(): Normal İfadeler (Regex)
⚡ Akıllı Özet
PHP'deki düzenli ifadeler (REF'ler), tek bir ifadede metni doğrulayan, bölen ve değiştiren kalıp eşleştirme araçlarıdır. Bu kılavuz, preg_match, preg_split ve preg_replace gibi temel işlevleri ele alacak, yaygın meta karakterleri açıklayacak ve adım adım çalışan bir e-posta doğrulama kalıbı oluşturacaktır.

PHP'de düzenli ifadeler (regular expression) nedir?
PHP düzenli ifadeleriDüzenli ifadeler (regex olarak da bilinir), tek bir ifadede gerçekleştirilebilen güçlü bir kalıp eşleştirme aracıdır. Düzenli ifadeler, karmaşık ifadeler oluşturmak için +, -, ve ^ gibi özel karakterler kullanır. E-posta adreslerini, IP adreslerini ve daha fazlasını doğrulamak gibi görevleri gerçekleştirmenize yardımcı olabilirler.
Neden normal ifadeler kullanıyorsunuz?
- PHP düzenli ifadeleri, tek bir fonksiyon çağırarak dize verilerindeki kalıpları belirlemeyi kolaylaştırır. Bu da bize kodlama süresinden tasarruf sağlar.
- E-posta adresleri, alan adları, telefon numaraları ve IP adresleri gibi kullanıcı girdilerini doğrularken
- Arama sonuçlarında anahtar kelimeleri vurgulama
- Özel bir HTML şablonu oluştururken. PHP'deki Regex, şablon etiketlerini tanımlamak ve bunları gerçek verilerle değiştirmek için kullanılabilir.
PHP'de Yerleşik Düzenli İfade İşlevleri
PHP'nin, bu eğitimde öğreneceğimiz gibi, düzenli ifadelerle çalışmamıza olanak sağlayan yerleşik fonksiyonları vardır. PHP'de yaygın olarak kullanılan düzenli ifade fonksiyonlarına bir göz atalım.
- PHP'deki `preg_match()` fonksiyonu, bir dize üzerinde desen eşleştirmesi yapmak için kullanılır. Eşleşme bulunursa `true`, bulunmazsa `false` döndürür.
- PHP'deki `preg_split()` fonksiyonu, bir dize üzerinde desen eşleştirmesi yapmak ve ardından sonuçları sayısal bir diziye bölmek için kullanılır.
- PHP'de preg_replace() – bu işlev bir dizede kalıp eşleşmesi gerçekleştirmek ve ardından eşleşmeyi belirtilen metinle değiştirmek için kullanılır.
Aşağıda preg_match(), preg_split() veya preg_replace() gibi bir düzenli ifade fonksiyonunun sözdizimi verilmiştir.
<?php
function_name('/pattern/',subject);
?>
İŞTE,
- “function_name(…)” ya preg_match(), ya preg_split() ya da preg_replace() işlevidir.
- “/…/” eğik çizgiler, düzenli ifademizin başlangıcını ve sonunu belirtir.
- “'/pattern/'” eşleştirmemiz gereken kalıptır.
- “konu” eşleştirilecek metin dizesidir
Şimdi yukarıdaki PHP düzenli ifade fonksiyonlarını uygulayan pratik örneklere bakalım.
PHP'de Preg_match()
İlk örnekte, verilen bir metinde "guru" kelimesi için basit bir kalıp eşleştirme işlemi gerçekleştirmek üzere preg_match() fonksiyonu kullanılmıştır. URL.
Aşağıdaki kod, yukarıdaki örnek için preg_match() fonksiyonunun uygulamasını göstermektedir.
<?php $my_url = "www.guru99.com"; if (preg_match("/guru/", $my_url)) { echo "the url $my_url contains guru"; } else { echo "the url $my_url does not contain guru"; } ?>
Şuraya göz atın: URL http://localhost/phptuts/preg_match_simple.php
Çıktımızı oluşturan kod bölümünü inceleyelim, preg_match('/guru/', $my_url). BURADA,
- “preg_match(…)” PHP regex işlevidir
- “'/guru/'” eşleştirilecek düzenli ifade modelidir
- “$my_url” eşleştirilecek metni içeren değişkendir.
PHP Preg_split()
Şimdi de preg_split() fonksiyonunu kullanan başka bir örneğe bakalım.
Bir dize ifadesini alıp onu bir diziye ayıracağız; eşleştirilecek desen tek bir boşluktur.
Bu örnekte kullanılacak metin dizesi “Normal İfadeleri Seviyorum”dur.
Aşağıdaki kod yukarıdaki örneğin uygulanmasını göstermektedir.
<?php $my_text = "I Love Regular Expressions"; $my_array = preg_split("/ /", $my_text); print_r($my_array ); ?>
Şuraya göz atın: URL http://localhost/phptuts/preg_split.php
PHP Preg_replace()
Şimdi de preg_replace() fonksiyonuna bakalım. PHP işlevi bu, bir kalıp eşleşmesi gerçekleştirir ve ardından kalıbı başka bir şeyle değiştirir.
Aşağıdaki kod bir kelimede guru kelimesini arar. dizi.
Bu kod, "guru" kelimesini, arka plan rengini vurgulayan CSS koduyla çevrili "guru" kelimesiyle değiştirir.
<?php $text = "We at Guru99 strive to make quality education affordable to the masses. Guru99.com"; $text = preg_replace("/Guru/", '<span style="background:yellow">Guru</span>', $text); echo $text; ?>
preg_replace.php dosyasını kaydettiğinizi varsayarak, aşağıdaki adrese gidin: URL http://localhost/phptuts/preg_replace.php
Normal İfade Meta Karakterleri
Yukarıdaki örneklerde çok temel kalıplar kullanılmıştır. Metakarakterler, e-posta adresinin geçerliliğini test etmek gibi daha karmaşık kalıp eşleştirmeleri yapmamıza olanak tanır. Şimdi yaygın olarak kullanılan metakarakterlere bakalım.
| Meta karakter | Açıklama | Örnek E-posta |
|---|---|---|
| . | Yeni satır dışında herhangi bir tek karakterle eşleşir | /./ tek karakterli her şeyle eşleşir |
| ^ | Bir dizenin başlangıcını eşleştirir veya karakterleri hariç tutar. | /^PH/, PH ile başlayan herhangi bir dizeyle eşleşir |
| $ | Dizinin sonundaki bir desenle eşleşir. | /com$/ ifadesi guru99.com, yahoo.com vb. ile eşleşir. |
| * | Önceki karakterlerden sıfır veya daha fazlasıyla eşleşir. | /com*/ bilgisayar, iletişim vb. ile eşleşir. |
| + | Önceki karakter(ler)in en az bir kez görünmesi gerekmektedir. | /yah+oo/ yahoo ile eşleşir |
| \ | Metakarakterlerden kaçmak için kullanılır | /yahoo+\.com/ noktayı gerçek bir değer olarak ele alır |
| [...] | Karakter sınıfı | /[abc]/ a, b veya c ile eşleşir |
| AZ | Küçük harflerle eşleşir | /az/ havalı, mutlu vb. ile eşleşir. |
| AZ | Büyük harflerle eşleşir | /AZ/ NE, NASIL, NEDEN vb. ile eşleşir. |
| 0-9 | 0 ile 9 arasında herhangi bir sayıyla eşleşir | /0-4/ 0,1,2,3,4 ile eşleşir |
Yukarıdaki liste yalnızca normal ifadelerde en sık kullanılan meta karakterleri verir.
Şimdi de bir e-posta adresinin geçerliliğini kontrol eden oldukça karmaşık bir örneğe bakalım.
<?php $my_email = "name@company.com"; if (preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $my_email)) { echo "$my_email is a valid email address"; } else { echo "$my_email is NOT a valid email address"; } ?>
E-posta Doğrulama Modelinin Açıklanması
İŞTE,
- “/…/” düzenli ifadenin başlangıcını ve sonunu belirler.
- “^[a-zA-Z0-9._-]” ifadesi, küçük veya büyük harfleri, 0 ile 9 arasındaki sayıları ve noktaları, alt çizgileri veya tireleri eşleştirir.
- “+@[a-zA-Z0-9-]” ifadesi, @ sembolünü takiben küçük veya büyük harfler, 0 ile 9 arasında sayılar veya tireler ile eşleşir.
- “+\.[a-zA-Z.]{2,5}$/” ifadesi, noktayı ters eğik çizgi kullanarak kaçırır ve ardından dizenin sonunda 2 ile 5 karakter uzunluğunda olan herhangi bir küçük veya büyük harfi eşleştirir.
Şuraya göz atın: URL http://localhost/phptuts/preg_match.php
Yukarıdaki açıklamadan da görebileceğiniz gibi, meta karakterler kalıpları eşleştirme konusunda çok güçlüdür.




