Düzenli ifadeler(Regular Expressions) konusuna bu başlıkda giriş yapmıştım… Şimdi bazı pratik fonksiyonları inceleyeyecğiz..
Bu fonksiyon karakter katarların da, belirlediğimiz düzenli deyimle eşleşmeler bulunursa bulunanlar dizi eleman içerisinde depolanacaktır. Amacımız sadece karşılaştırma ise, yani bulunan değeri almak değilde, kullanılıp, kullanılmadığına bakmak ise, yine bu fonksiyondan yararlanabiliriz…
örnek kullanım;
$veri = “http://www.veblebi.com/duzenli-ifadeler-ve-karakter-katarlari1/”;
preg_match (“/^(http:\/\/)?([^\/]+)/i”, $veri, $match);
echo $match[0] ; // http://www.veblebi.com olur..
echo $match[1]; // http:// olur..
echo $match[2] ; // www.veblebi.com olur..
Kısaca belirlediğimiz düzenli ifade ile, url adresindeki domaini almış olduk…
“\” kullandığımız kaçış karakterleridir… önce http:// bölümünü aldık, ? ile bir alt örneği isteğe bağlı olarak işaretledik, ardından ise / belirledik. Bu halde match[1], sonraki ise match[2], pattern eşleşimi ise match[0] oldu…
Şu biçimde kullansaydık;
preg_match (“/^(http:\/\/[^\/]+)/i”, $veri, $match);
echo $match[0] ; // http://www.veblebi.com olurdu…
echo $match[count($match)-1] ; // http://www.veblebi.com olurdu… Yani $match[1] dizi değeride aynı çıktıyı verir…
Kullanımı preg_match() ile aynıdır. Yalnız preg_match() eşleşen tek bir sorgu içerirken, preg_match_all() içerikde tüm eşleşenleri bir alt deyim olarak dizi değişkenlere atayacaktır.. Yani birden çok eşleşen kaydın alınmasını sağlar. Birden çok eşleşen değişkenlerin tümünüde bir döngü ile almak mümkün…
1 Yorum
Geri izleme: Düzenli İfadeler ve Karakter Katarları1 | VebLebi