düzenli ifadeler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
düzenli ifadeler etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Kiki ile düzenli ifadeleri Ubuntu üzerinde test edin

Başlıkta yazdığım gibi regular expression yani düzenli ifadeler ile yaptığımız eşleştirmeleleri bu program sayesinde grafiksel olarak görebilmekteyiz.

Düzenli ifadelerimizde eşleşen ve eşleşmeyen bölümleri daha kolayca ayırıp çalışmalarınıza
entegre edebiliriz.

Programın kullanımı oldukça basit. Aynı Win tabanlı platfoemlarda ücret karşılığında kullanılan
regexbuddy programına benzemekte. Open source olarak dağıtılan bu programa Ubuntu depolarından ücretsiz bir şekilde erişebilirsiniz.

Programı açtıkdan sonra Simple Text isimli kutuya gelip üzerinde düzenli ifadelerinizi test etmek istediğiniz metini
giriyorsunuz.

Daha sonra ise eşleştirme yapmak istediğiniz düzenli ifadeyi programın üst kısmında bulunan kutuya girip
Evaluate butonuna basıp Matches sekmesinde eşleşen bölümü görebilmektesiniz. (Enter ilede aynı işlem gerçekleşmekte)

Denediğiniz düzenli ifadeyi üst kutudan kopyalayıp kullandığınız çalışma ortamına götürebilirsiniz.

Test ettiğiniz düzenli ifadlerde program yardımı ile IGNORECASE, DOTALL, LOCALE, UNICODE, MULTILINE, VERBOSE gibi
seçenekleri seçerek kullanabilirsiniz.

0 Yorum

ereg_replace ve eregi_replace fonksiyonları

Ereg_replace ve Eregi_replace Php ile sıklıkla kullandığımız fonksiyonlardır. Daha önce php ile düzenli ifadeler yazılarımda ereg ve eregi fonksiyonlarından söz etmiştim. Bu fonksiyonlar'dan True yada False sonucu dönmekteydi. Ereg_replace ve Eregi_replace fonksiyonları ise yaptığımız karakter aramalarını bulup istediğimiz karakterler ile değiştirebiliyor. Bu iki fonksiyon arasındaki fark ise birinin büyük küçük harf duyarlılığına sahip diğerinin ise sahip olmamasıdır. (Case sensitive). Eregi_replace fonksiyonunda büyük küçük harf duyarlılığı yoktur. Bu fonksiyonlarda düzenli ifadeleride kullanabilmekteyiz. Basit bir örnek yapalım.


<?php

$salt = "Ubuntu bir Linux dagitimidir.";
$bul = 'Ubuntu';
$degistir = "Özgür";
echo ereg_replace($bul,$degistir,$salt);

?>


Yukarıdaki örnekte $bul değişkeni içerisindeki değeri $salt değişkeni içerisinde arıyoruz eğer değerimiz bulunursa $degistir değişkeni içerisindeki değer ile değiştirilip ekrana yazdırılıyor.

Yukarıdaki örnekte aranan kelimeler büyük küçük harf olarak tam eşleşmektedirler. Şimdi $bul içindeki değeri ubuntu yapalım ve test edelim. ("u" harfi büyük değil) Eğer test ederseniz ereg_replace() fonksiyonunun eşleşmediğini göreceksiniz. İşte bu gibi durumlarda eregi_replace() fonksiyonu kullanarak büyük küçük harf duyarlılığından sıyrılabiliriz. Örnekte eregi_replace() kullandığımızda Ubuntu kelimesi ubuntu ile eşleşip ekrana Özgür yazılacaktır.

Daha ayrıntılı bilgi için ereg_replace eregi_replace bu adreslere gözatın.

0 Yorum

Php ile Düzenli ifadeler -3

Köşeli parantezlerden [] hariç ayrıca düzenli ifadelerde () normal parantezlerde kullanılmaktadır. Parantez İşaretlerini gruplama yaparken kullanırız. Şöyle bir örnek vermek gerekirse.


<?php
$desen = "(cumar|pazar)tesi";
$cumle = "bugün pazartesi";

if(ereg($desen,$cumle)) {
echo "Regular expression (Düzenli ifade) bulundu.";
}else {
echo "Regular expression (Düzenli ifade) bulunamadı.";
}
?>


Gördüğünüz gibi parantez içindeki düzenli ifademizi grupladık. Arama karakter dizimizde başı cumar veya pazar olan ve sonu tesi ile eşlenen kriterler bulduğunda bu örnek kod parçacığı TRUE dönecektir.

Parantezler hakkında bir iki örnek daha verelim.


<?php
$desen = "web(co)*dez"; // * kendisinden bir önceki karakter sıfır yada
daha fazla olmak zorundaydı
$cumle = "webcodez";

if(ereg($desen,$cumle)) {
echo "Regular expression (Düzenli ifade) bulundu.";
}else {
echo "Regular expression (Düzenli ifade) bulunamadı.";
}

//output webcoodez FALSE, webdez,webcodez, webcocodez TRUE dönecektir.
?>


Nokta karakterini açıklamayı unuttum. Düzenli ifadelerde nokta karakteri herhangibir karakter anlamına gelmektedir. Şimdi bu karakter ile ilgili bir örnek yapalım.


<?php
$desen = "Pa.dus";
$cumle = "Pardus";
if(ereg($desen,$cumle)) {
echo "Regular expression (Düzenli ifade) bulundu.";
}else {
echo "Regular expression (Düzenli ifade) bulunamadı.";
}

// $desen = ".dus"; Patdus,Pavdus,Pa2dus,Pa-dus TRUE döner
Padus,Pa22dus,Pa--dus FALSE dönecektir.
?>


Şimdide Düzenli ifadeler kullanırken en çok kullanılan ereg_replace() ve eregi_replace() fonksiyonlarına bakalım. Bu fonksiyonlar bize arama ve değiştirme yapma imkanı sunarlar. ereg_replace() büyük küçük harf ayrımı yaparken eregi_replace() fonksiyonu büyük küçük harf ayrımı yapmamaktadır. En basitinden bir örnek üzerinde açıklayalım.


<?php
$cumle = "özgürlük için pardus";
$bul = ereg_replace("pardus","PARDUS",$cumle);
echo $bul;
//çıktı özgürlük için PARDUS olacaktır.
?>


Gördüğünüz gibi fonksiyon ilk parametre olarak aranacak değeri alıyor, ikici parametresi ise bulduğu değeri neyle değiştireceğidir ve üçüncü parametresi ise hangi karakter dizisinde arama yapacağıdır.

0 Yorum

Php ile Düzenli ifadeler -2

Düzenli ifadelerdeki özel karakterler

Düzenli ifadeler hakkında yazdığım ilk yazıda sadece | veya(or) karakterinden bahsetmiştim. Burda ise diğer özel karakterlerin ne işe yaradıklarını ve diğer düzenli ifadeleri yazacağım.

$desen = "google"; Aranılan karakter dizisinde google bulunmak zorundadır.
$desen = "^google"; Aranılan karakter dizisi google ile başlamak zorundadır.
$desen = "google$"; Aranılan karakter dizisi google ile bitmelidir.
$desen = "^google$; Aranılan karakter dizisi sadece google olmalıdır.
$desen = "goog?le"; ? işaretinden bir önceki karakter olsada olur olmasada olur. goole ve google TRUE, goorle g00le gole FALSE dönecektir.
$desen = "goo+gle"; + işaretinden bir önceki karakter olan "o" bir yada daha fazla sayıda bulunmak zorundadır.
gooogle, goooogle, gooooogle TRUE gogle,glogle,gorgle, goolgle FALSE dönecektir.
$desen = "goo*gle"; * işaretinden bir önce gelen karakter olan o sıfır yada daha fazla sayıda bulunmalıdır.
gogle,gooogle,googles TRUE gobgle, aoogle, goodle FALSE dönecektir.

Bu özel karakterlerden (^?*) hariç olarak düzenli ifadelerde [] köşeli parantezler ile bu parantezlerin içinde belirlediğimiz karakter kümelerini arayabiliriz.
Köşeli parantezler içerisinde kullanılan "-" tire işareti, Aralığında olarak kullanılır. [abcde] yerine [a-e] aynı ifadedir. Aynı şekilde rakamlar içinde geçerlidir. [0123456789] ile [0-9] gibi.

$desen = "[a-z]"; Aranılan karakter dizisinde küçük harf olmak zorundadır.
$desen = "[A-Z]"; Aranılan karakter dizisinde büyük harf olmak zorundadır.
$desen = "[juv]"; Aranılan karakter dizisinde j yada u yada v bulunmalıdır.
$desen = "[0-9]"; Aranılan karakter dizisinde rakam bulunmalıdır.
$desen = "[a-zA-Z0-9]"; Aranılan karakter dizisinde rakam veya harf bulunmalıdır.
$desen = "^[a-z]+$"; Aranılan karakter dizisi küçük harf iel başlayıp devam etmeli ve bitmelidir.
$desen = "[rth]$"; Aranılan karakter dizisi r, t, yada h harfleri ile bitmelidir.
$desen = "^[a-zA-Z0-9]+$"; Aranılan karakter dizisinde özel karakter olmamalıdır. Sadece harf veya rakamdan oluşmalıdır.
$desen = "^[123]"; Aranılan karakter dizisi 1,2 yada 3 ile başlamalıdır.

Aşağıdaki kod parçacığı üzerinde $desen değişkenini değiştirerek düzenli ifadeleri test edebilirsiniz.


<?php
$desen = "^[123]";
$cumle = "webcodez.blogspot.com google tarafından host edilmektedir.";

if(ereg($desen,$cumle)) {
echo "Regular expression (Düzenli ifade) bulundu.";
}else {
echo "Regular expression (Düzenli ifade) bulunamadı.";
}
?>

0 Yorum

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.

0 Yorum