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.

  • 🧩 Regex Nedir: Düzenli ifade, metni tanımlayan ve bir fonksiyonun dizeleri doğrulamasına, aramasına veya dönüştürmesine olanak tanıyan bir kalıptır.
  • gebelik eşleşmesi: `preg_match` bir desenin bir dizede olup olmadığını test eder ve ilk eşleşmede `true` değerini döndürür; bu da doğrulama için idealdir.
  • ✂️ preg_split: `preg_split` fonksiyonu, bir dizeyi, örneğin boşluklara göre bir cümleyi bölmek gibi, desenin geçtiği her yerden bir diziye ayırır.
  • 🔁 preg_replace: `preg_replace` bir kalıbın tüm eşleşmelerini bulur ve bunları yeni metinle değiştirir; şablon oluşturma ve vurgulama için kullanışlıdır.
  • 🔤 Metakarakterler: ., ^, $, *, ve + gibi semboller, örneğin bir eşleşmeyi başlangıca veya sona sabitlemek gibi karmaşık desenler oluşturur.
  • ???? E-posta Şablonu: Karakter sınıfları ve nicelik belirleyiciler, bir e-posta adresinin doğru biçimlendirilmiş olup olmadığını kontrol eden tek bir kalıpta birleşir.
  • 🤖 Yapay Zeka Yardımı: Yapay zeka araçları, basit bir açıklamadan düzenli ifadeler yazabilir ve karmaşık mevcut bir kalıbı açıklayabilir veya hata ayıklayabilir.

PHP Düzenli İfadeler

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

Yerleşik Düzenli İfade İşlevleri

Çı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_split()

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

PHP Preg_replace()

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

PHP E-posta Doğrulama Kalıbı

Yukarıdaki açıklamadan da görebileceğiniz gibi, meta karakterler kalıpları eşleştirme konusunda çok güçlüdür.

SSS

`preg_match` ilk eşleşmede durur ve `$matches` değişkenini o tek sonuçla doldurur. `preg_match_all` ise dizedeki her eşleşmeyi bulur ve bunların tümünü iç içe geçmiş bir dizide döndürür; bu da örnek işlemler için uygundur.tracTekrarlanan öğelerin kullanımı.

Değiştiriciler, kapanış sınırlayıcısından sonra gelir ve eşleşme davranışını değiştirir. i değiştiricisi kalıbı büyük/küçük harf duyarsız hale getirir, m her satırı ^ ve $ için ayrı ayrı ele alır ve s, noktanın yeni satırlarla eşleşmesini sağlar, örneğin /guru/i'de olduğu gibi.

Desen parçalarını parantez içine alarak yakalama grupları oluşturun. preg_match'ten sonra, tam eşleşme $matches[0]'da ve her grup $matches[1], $matches[2] ve benzeri şekilde devam eder.

Evet. Eşleştirmek istediğiniz metni, örneğin bir telefon numarası veya tarih formatını tanımlayın; yapay zeka bu kalıbı ve bir preg_match örneğini üretebilir. Güvenmeden önce gerçek ve uç durum girdilerine karşı test edin.

Evet. Şablonu yapıştırın, yapay zeka onu her bir kod parçaya ayırabilir, her bir parçanın neyle eşleştiğini açıklayabilir ve belirli girdilerde neden başarısız olduğunu belirterek düzeltilmiş bir sürüm önerebilir.

Bu yazıyı şu şekilde özetleyin: