arşiv
REGEX – Alt İfadeler
En çok kullanılan metakarakterlerden diğeri; | VEYA anlamına gelir. Küçük L harfiyle karıştırmayın Klavyelerde genelde Alt Gr + Büyük-Küçük işareti olan tuşa tıklayarak yazdığımız karakter bu. Birden fazla düzenli ifadeyi birleştirip tek bir düzenli ifade oluşturmamıza yarıyor. Bu yeni oluşturduğumuz ifade içerisindeki alt ifadelerden herhangi birini karşılıyorsa sonucu listeler.
Makin[ae] örneğimizi hatırlarsınız. Bu örneği şu şekilde yazmak mümkün;Makina|Makine Hatta abartırsak; Makin(a|e) Tabi gerek yok bunlara, ama örnek vermek amacıyla yazıyorum, yoksa bu örnekte bizim kullanmamız gereken düzenli ifade Makin[ae] dir.
REGEX – Nokta Metakarakteri
Şimdi diyebilirsiniz, “Her metakarakter için yeni yazı yazarsan halimiz nice olur?” diye. Nokta metakarakteri belki de en çok kullanacaklarınızdan olacak, o yüzden üzerinde durulması gereken bir nokta bu nokta.
Nokta metakarakteri (.) herhangi bir karakterle eşleşebilir. Bir nevi Joker olarak düşünün. “Burda herhangi bir karakter olabilir.” dediğiniz yerlerde kullanacaksınız.
Hemen kısaca bir kaç örnek verelim. Bu arada bu yazı dizisini hazırlamanın en zor yeri bu örnekler, bazen verilecek örnek bulmakta gerçekten çok zorlanabiliyorum. Neyse;
WhoSay.n diye bir düzenli ifademiz var, örnek yazımızda neleri bulacağız, neleri bulamayacağız, inceleyelim;
REGEX – Negatif Karakter Sınıfları
Eğer karakter sınıflarında gördüğümüz [...] yerine [^...] kullanırsanız belirlediğiniz kriterlere uymayan yerleri listelersiniz. Örneğin [^2-7] regex’i 2 ve 7 arasında olmayan karakterlerle eşleşir. Yani karakter sınıfının başındaki ^ metakarakteri, karakter sınıfının içerisindeki karakterleri istemediğinizi belirtir.
Birkaç yazı önce Regex ile Satır başı ve Satır sonu konusunu işlemiştik. Dikkat ettiyseniz o yazıda ^ metakarakterinin satır başını ifade ettiğini söylemiştik. Şimdi ise karakter sınıfını negatife çevirdiğini söylüyoruz. Bu da demek oluyorki REGEX‘te metakarakterlerin işlevleri kullanıldığı yere göre değişiyor. Tıpkı sesteş sözcükler gibi. Kullanıldığı yere göre değişik anlamlar alabiliyorlar.
REGEX – Karakter Sınıfları
Diyelimki bir yazı içerisinde geçen “makina” kelimelerini bulmak istiyorsunuz. Fakat bildiğiniz üzere makina kelimesini makine diye yazanlar da var, makina diye yazanlar da.
[...] yapısı, REGEX‘te karakter sınıfı olarak bilinir. e sadece e’leri, a sadece a’ları bulurken, [ea] her ikisini de bulur. Yazının içerisinde geçen makina ve makine kelimelerini bulmak için makin[ae] düzenli ifadesini kullanıyoruz. Bu düzenli ifade sayesinde yazı içerisinde ardından a veya e gelen makin kelimelerini buluyoruz.
Verilebilecek başka bir örnek ise istenilen yerlerde büyük-küçük harfe izin verilmesi durumlarıdır. Örneğin yazının içerisinde geçen hüseyin ve Hüseyin kelimelerini bulmak istediğinizde [Hh]üseyin regex‘ini kullanabilirsiniz. (Bu durum sizi korkutmasın, günümüzde pek çok Regex implementasyonunda büyük-küçük harf ayrımı gözardı edilebilmekte, ileriki yazılarda göreceğiz.)
REGEX – Satır Başı ve Satır Sonu
REGEX yazı dizimizin ilk bölümünde satır başı ve satır sonu‘nu işleyeceğiz. Muhtemelen anlayabileceğiniz en kolay bölüm bu olduğu için burdan başlıyorum. ^ metakarakteri satır başlarını, $ metakarakteri ise satır sonlarını ifade eder.
^Hüseyin : Satır başlarındaki “Hüseyin“leri bulur
Hüseyin$ : Satır sonlarındaki “Hüseyin“leri bulur.
^Hüseyin$ : Aynı anda hem satır başında, hem de satır sonunda bulunan “Hüseyin“leri bulur. Yani içerisinde sadece “Hüseyin” geçen satırları bulur.
^$ : Satır başından hemen sonra gelen satır sonlarını bulur. Yani boş satırları bulur.
devamını oku…
Son Yorumlar