Düzenli İfadeler(Regular Expressions) Nedir, Nasıl Kullanılır ?
Regular Expressions bir metni düzenlemek yada metni kurallar çerçevesinde oluşturabilmek veya türetebilmek amacıyla kullanılır. Hangi karakterler vardır ve anlamları nelerdir ?
“.” : Tek bir karakteri ifade eder. Ctr.Delete : CtrlDelete , CtrsDelete, CtrtDelete olabilir , nokta yerine 1 karakter alabilir.
“[]” : İçerisindeki karakterleri içerir. [abc] a,b yada c olabilir ancak [a-z] dediğimiz zaman a’dan a’ye tüm karakteri içerir anlamına gelir.
[0-9] ise bu aralıktaki rakamları belirtir. Büyük küçük harf duyarlı çalışır.
“?” : Kendinden önceki karakterin varlığının olup yada olmamasını ifade eder. Ctrl?Delete : CtrDelete veya CtrlDelete olabilir.
“\S” :Boşluk yada tab karakteri dışındaki tük ifadeleri kapsar .
“\s” : Boşluk yada tab karakterini kapsar.
“*” : Kendinden önceki karakterin istediğiniz karak döndürülmesini sağlar. CtrlDelete* : CtrlDelete, CtrlDeleteeee. CtrlDelet[a-z]* : CtrlDeleteee , CtrlDeletzzz gibi.
“{}” : Kendinden önce gelen karakteri sayısını belirtir. Ctrl{4}Delete : CtrllllDelete
“$” : Bu karakterin solunda hangi ifade var ise satırın o şekilde bitmesi gerekir. ….CtrlDelete$
“+” : Kendinden önceki ifadenin en az bir yada daha fazla olmasını ifade eder.
“^” : Satır başındaki ifadeyi temsil eder. Eğer [ ] içerisinde kullanılırsa parantez içindeki ifadelerin dışında kalanları temsil eder.
“\d” : Herhangi bir rakamı temsil eder.
“\D” : Rakam olmayan herhangi bir ifadeyi temsil eder.
Örnek vermek gerekit ise ;
“(0?[1-9])” ifadesi 1,2,3,….9,01,02,03….,09’u ifade eder. “?” karakteri kendiden önce gelen ifadenin olup olmamasını belirtirdi.
“(90[0-9])” ifadesi 900,901,902,903,904….909’u ifade eder.
Örnek bir mail ifadesini tanılmamak gerekirse ; Regex ile mail aşağıdaki gibi yapılabilir ;
^[A-Z0-9._%+-]+@[A-Z0-9.-]+.(com|org|net|edu|gov|mil|biz|info|mobi)(.[A-Z]{2})?$
“@” önceki kısımda ^ ile başlanılan ifadeleri belirttik. [] içindeki ifadeler ile hangi karakterlerin kullanılacağını parantez sonrası + ile bunların bir yada daha fazla olması gerektiğini belirtmiş olduk.
@ işareti sonrasındaki alanalarda aynı şekilde [] ile kullanılacak karakterleri belirttik parantez sonrası + işaretiyle bir yada daha fazla olmaları gereltiğini belirttik, daha sonra () içerisindeki olması gereken uzantıları ve uzantı sonrası iki karakterlik {2} .tr gibi bir uzantı daha tanımlanacağını ancak ? ile tanımlanmasada olur ifadesi koymuş olduk.