Php ile Düzenli ifadeler
Düzenli ifaledeler ( Regular Expressions ) bir karakter dizisi içerisinde arama yaparken, yapmakta olduğumuz aramayı detaylı bir şekilde tanımlayacak olan karakterlerdir. Ve bizlere karakter dizilerindeki aramalarımızda müthiş yarar sağlarlar. Düzenli ifadelerde bazı özel karakterler çeşitli görevlerde kullanılırlar. Örneğin ? veya | gibi. Düzenli ifadeleri Php üzerinde örneklerle anlatmaya çalışıcam.
Php'de düzenli ifadeler ile görevli en temel iki fonksiyon ereg() ve eregi() fonksiyonlarıdır. Bu fonksiyonlar verdiğimiz düzenli ifadeye göre arama yaparlar. Eğer oluşturduğumuz düzenli ifade arama yapmak istediğimiz karakter seti içerisinde bulunursa bu fonksiyonlardan TRUE değeri döner. ereg() ve eregi() fonksiyonları arasındaki fark ise büyük küçük harflere olan duyarlılıklarıdır. ereg() fonksiyonu büyük küçük harflere duyarlı iken eregi() fonksiyonu büyük küçük harf duyarlılığına sahip değildir.
Php üzerinde bir iki örnekle açıklamak gerekirse.
<?php
$cumle = "Webcodez.blogspot.com google tarafından host edilmektedir.";
$desen= "goo | goog | google";
if(ereg($desen,$cumle)) {
echo "Regular expression (Düzenli ifade) bulundu.";
}else {
echo "Regular expression (Düzenli ifade) bulunamadı.";
}
?>
$desen ile yapacağımız aramayı belirttik. Daha önce söylediğim gibi düzenli ifadelerde belirli görevlere sahip özel karakterler kullanıyorduk. İşte bu örnektede | karakterini kullandık. Bu karakterin düzenli ifadedeki anlamı veya (or) dur. "goo | goog | google" bu kelimeler eğer $cümle değişkenimizdeki stringde bulunursa ereg() fonksiyonumuzdan TRUE değeri dönüyor ve echo ile mesajımız yazdırılıyor. Aksi durumda FALSE göndüğünde ise if else ile yakalanıp FALSE durumdaki mesajımız yazılıyor.
Peki eğer $desen = "goo | goog | google"; değilde $desen = "goo | goog | GOOGLE"; olsaydı?
Eğer kodu çalıştırıp denerseniz düzenli ifade bulunamadı mesajını görürsünüz.
Daha evvel belirttiğim gibi ereg() fonksiyonu büyük küçük harfe duyarlıdır.
$desen = "goo | goog | GOOGLE"; iken kullandığımız fonksiyonu eregi() yaparsak düzenli ifade bulundu mesajını alırız.
Yorumunuzu belirtebilirsiniz