PHP Düzenli İfadeler (RegEx)

İçerikleri analiz etmek ve metni şekillendirmek için bu güçlü araca bir göz atın. İlgili örnek fonksiyonlarla hızla öğrenmeye başlayın! PHP Düzenli İfadeler (RegEx) ile ilgili tüm detaylar bu konumuzda!

PHP Düzenli İfadeler (RegEx)

PHP Düzenli İfade Nedir?

Düzenli ifade, bir arama deseni oluşturan bir karakter dizisidir. Bir metinde veri ararken, ne aradığınızı tanımlamak için bu arama desenini kullanabilirsiniz.

Düzenli ifade tek bir karakter olabileceği gibi daha karmaşık bir kalıp da olabilir.

Düzenli ifadeler, her tür metin arama ve metin değiştirme işlemini gerçekleştirmek için kullanılabilir.

Sözdizimi

PHP'de düzenli ifadeler, sınırlayıcılar, bir kalıp ve isteğe bağlı değiştiricilerden oluşan dizgelerdir.

$exp = "/onurkul/i";

Yukarıdaki örnekte, / sınırlayıcıdır, onurkul aranmakta olan kalıptır ve i aramayı büyük/küçük harfe duyarsız hale getiren bir değiştiricidir.

Sınırlayıcı, harf, sayı, ters eğik çizgi veya boşluk olmayan herhangi bir karakter olabilir. En yaygın sınırlayıcı ileri eğik çizgidir (/), ancak deseniniz ileri eğik çizgiler içerdiğinde # veya ~ gibi diğer sınırlayıcıları seçmek uygundur.

PHP Düzenli İfade Fonksiyonları

PHP, düzenli ifadeleri kullanmanıza olanak tanıyan çeşitli fonksiyonlar sağlar. preg_match(), preg_match_all() ve preg_replace() fonksiyonları en sık kullanılanlardan bazılarıdır:

Fonksiyon Açıklama
preg_match() Desenin dizinde bulunup bulunmadığını kontrol eder ve bulunursa 1, bulunmazsa 0 döndürür.
preg_match_all() Desenin dizinde kaç kez bulunduğunu sayar ve sonucu döndürür (0 da olabilir).
preg_replace() Eşleşen desenleri başka bir dize ile değiştirilmiş bir dize döndürür.

PHP preg_match() Fonksiyonu Kullanımı

preg_match() fonksiyonu size bir dizenin bir kalıpla eşleşip eşleşmediğini gösterecektir.

Aşağıdaki dizede "onurkul" için büyük/küçük harfe duyarlı olmayan bir arama yapmak için düzenli ifade kullanılır.

<?php
$str = "onurkul.com.tr adresini ziyaret et";
$pattern = "/onurkul/i";
echo preg_match($pattern, $str); // Çıktı
?>

PHP preg_match_all() Fonksiyonu Kullanımı

preg_match_all() fonksiyonu, bir dizede bir desen için kaç eşleşme bulunduğunu size gösterecektir.

Bir dizede "onur" sözcüğünün geçtiği yerlerin sayısını büyük/küçük harfe duyarlı olmadan saymak için düzenli ifade kullanılır.

$str = "onurkul.com.tr adresinde birbirinden farklı konular hakkında bilgi sahibi olabilirsiniz.";
$pattern = "/kul/i";
echo preg_match_all($pattern, $str); // Çıktı
?>

PHP preg_replace() Fonksiyonu Kullanımı

preg_replace() fonksiyonu, bir dizedeki desenin tüm eşleşmelerini başka bir dizeyle değiştirir.

Bir dizede Microsoft'u Onur KUL ile değiştirmek için büyük/küçük harfe duyarlı olmayan bir düzenli ifade kullanılır.

<?php
$str = "Microsoft Sitesini Ziyaret Et!";
$pattern = "/microsoft/i";
echo preg_replace($pattern, "Onur KUL", $str); // Çıktı "Onur KUL Sitesini Ziyaret Et!"
?>

PHP Düzenli İfade Değiştiricileri

Değiştiriciler bir aramanın nasıl gerçekleştirileceğini değiştirebilir.

Değiştirici Açıklama
i Büyük-küçük harf farkını önemsemeden arama yapar.
m Birden fazla satırdan oluşan metinlerde, başlangıç veya sonu arayan desenler için çok satırlı arama yapar.
u UTF-8 kodlu desenlerin doğru eşleşmelerini etkinleştirir.

PHP Düzenli İfade Kalıpları

Parantezler bir karakter aralığını bulmak için kullanılır.

İfade Açıklama
[abc] Köşeli parantezler arasındaki seçeneklerden bir karakter bulun.
[^abc] Köşeli parantezler arasındaki karakterlerin dışındaki herhangi bir karakteri bulun.
[0-9] 0 ile 9 arasındaki herhangi bir karakteri bulun.

PHP Meta Karakterler

Meta karakterler özel bir anlamı olan karakterlerdir.

Meta Karakter Açıklama
` `
. Herhangi bir tek karakteri bulun.
^ Dizinin başlangıcındaki eşleşmeyi bulun, örneğin ^Merhaba.
$ Dizinin sonundaki eşleşmeyi bulun, örneğin Dünya$.
\d Bir rakamı bulun.
\s Bir boşluk karakterini bulun.
\b Kelimenin başlangıcındaki (\bWORD) veya sonundaki (WORD\b) eşleşmeyi bulun.
\uxxxx Belirtilen onaltılık sayı (xxxx) ile tanımlanan Unicode karakterini bulun.

PHP Miktar Belirteçleri

Miktar Açıklama
n+ En az bir tane 'n' içeren herhangi bir dizeyi eşleştirir.
n* Sıfır veya daha fazla 'n' içeren herhangi bir dizeyi eşleştirir.
n? Sıfır veya bir tane 'n' içeren herhangi bir dizeyi eşleştirir.
n{x} X adet 'n' içeren bir dizeyi eşleştirir.
n{x,y} En az X, en fazla Y adet 'n' içeren bir dizeyi eşleştirir.
n{x,} En az X adet 'n' içeren bir dizeyi eşleştirir.

Not: İfadenizin özel karakterlerden birini araması gerekiyorsa, bunlardan kaçmak için ters eğik çizgi ( \ ) kullanabilirsiniz. Örneğin, bir veya daha fazla soru işareti aramak için aşağıdaki ifadeyi kullanabilirsiniz: $pattern = '/\?+/';

PHP Gruplandırma

Miktar belirteçlerini tüm kalıplara uygulamak için parantezleri ( ) kullanabilirsiniz. Ayrıca eşleşme olarak kullanılacak kalıp parçalarını seçmek için de kullanılabilirler.

"Muz" sözcüğünü aramak için gruplamayı kullanarak m ve ardından iki uz örneği arayın:

<?php
$str = "Elma ve Muz.";
$pattern = "/m(uz){2}/i";
echo preg_match($pattern, $str); 
?>

Tepkiniz Nedir?

like

dislike

love

funny

angry

sad

wow