Normal ifadeler (regular expressions) öğrenmesi zaman alan fakat analytics, optimize, google tag manager gibi bir çok aracın kullanımında işlerinizi oldukça kolaylaştıracak hedefleme ifadeleridir.
Örnekler ile açıklamak gerekirse, google analytics üzerinden hedef tanımlayarak url’de “checkout” geçen sayfaları hedeflemek istiyorsunuz. Fakat adresler çeşitli parametreler alabiliyor yada sayfa yolları çeşitli durumlarda değişebiliyor.
http://www.sizinsiteniz.com/checkout/
http://www.sizinsiteniz.com/checkout/?step=1
www.sizinsiteniz.com/step2/checkout/
www.sizinsiteniz.com/checkout/?step=3&login=true
alisveris.sizinsiteniz.com/checkout/?step=4
Yukarıdaki örnek adresler gibi sitenizdeki alışveriş süreci 5 aşamadan oluşuyor ise ve hepsinin ortak noktası içinde checkout geçmese ise, analytics üzerinde farklı farklı 5 hedef tanımlamamıza gerek yok.Normal ifadeler sayesinde kolayca bu sayfaları bir kerede hedefleye bilirsiniz
Tek yapmanız gereken .*checkout şeklinde bir normal ifade ile hedef tanımlamak.
Şimdi isterseniz normal ifadelere yakından göz atalım ve bütün operatörleri açıklayalım.
Pipe (|) operatörü
“Yada” anlamına gelen bu operatör sayesinde bu yada şu şeklinde ifadeler tanımlayabilirsiniz.
Örnek olarak hedeflemek istediğiniz sayfaların adresleri checkout yada cart içeriyorsa “cart|checkout” şeklinde bir normal ifade tanımlamanız yeterli.
Aynı şekilde sadece hedef tanımlarken değil analytics altındaki çeşitli raporlarda normal ifadeleri kullanabilirsiniz.
Örneklerimizi bu raporlar üzerinden gösteriyor olacağım.
Nokta (.) operatörü
Bu operatörü joker gibi kullanabilirsiniz. Örnek olarak “.ook” şeklinde bir normal ifade tanımlarsanız book,took,look gibi çeşitli sözcükleri tek bir kerede tanımlayabilirsiniz. Nokta operatörünün sadece bir karakter yerine geçtiği unutulmamalıdır. İlerki örneklerimizde çeşitli operatörlerin beraber kullanımını göreceğiz. Bu sayede regex in asıl gücünü anlamış olacaksınız.
Yıldız (*) operatörü
Kendinden önceki karakteri çoğaltır ve bu şekilde bir hedefleme yapar.
Örnek olarak bo*ks şeklinde bir tanımla yaparsanız
-books, boooks, boooks kelimelerinin hepsini hedeflemiş olursunuz.
Nokta ve yıldız (.*) operatörü
Peki nokta ve yıldız operatörlerini beraber kullanılırsa ne elde ederiz?
.*book şeklinde bir yazım book öncesinde gelen bütün joker ifadeleri çoğalacaktır böylece tek bir karakter üzerinde değil bir çok ifade ile işlem yapmış oluruz ve sportbook, artbook, paintingbook gibi tüm kelimeleri bir kerede hedeflemiş oluruz.
Ters taksim () operatörü
Yazılım bilenlerin aşina olduğu bu karakter “kaçınma” operatörü olarakta geçer.
Kendinden sonraki ifadenin bir normal ifade operatörü olmadığını ifade eder.
Örnek olarak analytics üzerinde bazı ip adreslerini görünümünüzden hariç tutmak istiyorsunuz ve filtre ekleyeceksiniz.
192.168.1.2 şeklinde tanımlama, filtreler normal ifadelere karşı duyarlı olduğundan problemler yaratabilir.
Bu sebeple 192.168.1.2 şeklinde bir kullanım alacağınız hataları önleyecektir.
Düzeltme (^) operatörü
Hedefleyeceğiniz karakter bütününün yazdığınız ifadeler ile başlayacağını tanımlar.
“^yaz” şeklinde bir tanımlama yaz-ayakkabisi, yazlik-esya, yaz-meyveleri gibi yaz ile başlayan bütün adresleri hedeflemiş olursunuz. Böylece yukarıdaki örnekler gibi “içeren” değil “ile başlayan” şeklinde bir tanımlama yapabilirsiniz
Dolar ($) operatörü
Yukarıdaki düzeltme operatörünün zıttı olan bu operatör, “ile biten” anlamına gelmektedir.
Örnek olarak “ayakkabi$” şeklinde bir kullanımı, tüm sayfalar raporunda kullandığınız zaman ayakkabi kelimesiyle biten tüm adresleri almış olacaksınız
Soru işareti (?) operatörü
Kendinden önceki karakterin opsiyonel olduğunu ifade eder.
Regg?ex şeklindeki bir kullanım soru işaretinden önceki “g” harfinin opsiyonel olduğunu belirtir. Analytics üzerinde bunu herhangi bir raporda kullandığınızda kendin önceki harfi içeren ve içermeyen tüm sonuçları önünüze getirecektir.
Parantez () operatörü
Bir küme tanımlamak için kullanabileceğiniz operatör.
Örnek vermek gerekirse ;
^/urunler/(ayakkabi|tshirt|sapka)/nike/$ şeklindeki bir kullanım ayakkabı, t-shirt, şapka içereni ürünler ile başlayan ve nike ile biten tüm sonuçları karşımıza getirecektir.
Köşeli parantez ([]) operatörü
Liste halinde “tek karakter” sorgulaması yapabilmenizi sağlar.
Örnek olarak b[aeo]l şeklinde bir kullanım bal,bel,bol ifadelerinin tümünü sorgulamanızı sağlayacaktır.
Tire (-) operatörü
Gelişmiş listeler oluşturmanızı sağlar. Örnek olarak yukarıdaki maddede a ve z arasındaki bütün harfleri sıralamak istediğimizi düşünelim. Bütün alfabeyi tek tek yazmamız gerekecekti, fakat tire operatörü sayesinde [a-z] yada [A-Z] şeklinde bir kullanım sayesinde tüm bu işlemi yapabiliriz.
Artı (+) operatörü
Yıldız operatörü ile aynı mantıkla çalışır ve kendinden önceki karakteri çoğaltarak sorgulama yapmanızı sağlar.
Merhaba+ ifadesiyle merhaba, merhabaa, merhabaaa gibi kelimeleri içeren boyutları sorgulayabilirsiniz.
Süslü parantez ({}) operatörü
Kendinden önceki ifadeleri, verdiğiniz sayılara göre en az ve en çok tekrarlanma sayısı şeklinde daraltma yapmanızı sağlar. Örneğin 192.168.1.0 ile 192.168.1.99 arasındaki ip adreslerini filtrelemek istediğimizi düşünelim. Bu halde 192.168.1.[0-9]{1,2}$ şeklinde bir kullanım yapmamız yeterli olacaktır.