İçindekiler
Regular Expressions nam-ı diğer RegEx klavyemizde yer alan (* / . $ ve ^ gibi) karakterleri kullanarak, istediğimiz herhangi bir ifadeyle eşleşebilecek, kapsayacak ya da belki istemediğimiz kısımları hariç tutarak doğru ayrıştırmalar yapmamızı sağlayan ifadeler olarak tanımlanabilir.
Bir diğer ifadeyle bir metin içerisinden belli kurallara uyan alt metinler elde etmek için kullanılan yazılımsal bir ifade biçimi.
Bizim için önemi ise Google Analytics’te görünüm filtreleri, hedefler, segmentler, kitleler, içerik grupları, kanal grupları vs. için kullanılarak daha esnek ve bize özel tanımlamalar oluşturmamızı sağlıyor. Google Analytics Türkçe Yardım dokümanında “Normal İfadeler” olarak tanımlanmış ama bence Türkçe karşılığı fonksiyonlarını pek de çağrıştırmıyor. Tabi bir kurallama dizisine sahip olan RegEx konusunu yeni yeni öğrenen biri olarak tıpkı her programlama dilinde olduğu gibi hata yapmaya oldukça açık olduğunu söyleyebilirim.
RegEx (Regular Expressions) ile Ne Yapabilirim?
Örneğin diyelim ki bir birkaç arkadaşımızla birlikte ortaya koyduğumuz bir girişimimiz var ve buna ait bir websayfamız var. Bu websayfası yeni olduğu için hatrı sayılır bir trafik almıyor fakat websayfamızda sürekli düzenlemeler yapmak zorunda olduğumuz için web sayfasının trafiğinin büyük bir bölümü bizden oluşuyor. Peki biz kendi kullandığımız IP adresi aralığının tamamından gelen verileri trafikten hariç tutarak gerçek trafiğimizi görmek istersek regexle bunu nasıl yaparız? IP adreslerinin 78.191.1.81 – 78.191.1.92 arasında değiştiğini varsayalım. 11 farklı IP adresi girmek yerine, adres aralığının tamamıyla eşleşen 78\.191\.81\.\d* gibi bir normal ifade oluşturabiliriz. Böylece tek bir kod ile hepsini kapsayan bir ifade yazmış oluruz.
Öncelikle Regex’te kullanacağımız karakterler ve anlamları üzerinde duralım:
Regex konusunu yazıya dökmek çok zor olduğu için aşağıdaki tabloyu ve örneklemeleri oluşturdum ki bu konuda kafası karışanlara ilaç gibi gelsin 🙂
Joker Karakterler ve Anlamları
Nokta.
Tek bir karakteri temsil eder (Yeni satır karakteri hariç).
Soru İşareti ?
Bir önceki karakterin ya hiç olmaması ya da sadece 1 adet olması anlamına gelir.
Artı+
1 veya daha fazla defa öncesindeki karakterle eşleşir
Yıldız*
Kendinden önce gelen karakterin ya hiç olmamasını ya da tekrar etmesini sağlar.
Dikey Çizgi |
veya anlamına gelir.
Regular Expressions – Regex Cheat Sheet Buradan Bilgisayarınıza İndirebilirsiniz.
Aşağıdaki tabloyu daha iyi bir deneyim için desktop ya da laptoplarınızdan incelemenizi ya da yukarıda linkte yer alan tablodan görüntülemenizi tavsiye ederim.
Karakter | Anlamı | Örnek | Eşleşir | Eşleşmez |
. | Tek bir karakteri temsil eder (Yeni satır karakteri hariç). | Fun.a | Funda | Funa |
? | Bir önceki karakterin ya hiç olmaması ya da sadece 1 adet olması anlamına gelir. | link?1 | lin1, link1 | linkk1 |
+ | 1 veya daha fazla defa öncesindeki karakterle eşleşir | 10+ | 10, 100 | 1 |
* | Kendinden önce gelen karakterin ya hiç olmamasını ya da tekrar etmesini sağlar. | goo*gle | gogle, gooooogle | goggle |
| | veya anlamına gelir. | web | analist | web, websitesi, analist | analiz |
Çapalar | ||||
^ | “İle başlar” anlamını taşır. Bir dizenin başındaki bitişik karakterlerle eşleşir | ^web analiz | web analiz hizmeti | online web analiz |
$ | “İle biter” anlamını taşır. Bir dizenin sonundaki bitişik karakterlerle eşleşir | |||
Gruplar | ||||
() | Gruplama. Dizenin herhangi bir yerinde belirli bir sıralamayı izleyen, parantez içine alınmış karakterlerle eşleşir. Bu da, diğer ifadeleri gruplandırmak için kullanılır. | ^(goog|web)[0-9]+ | goog1, web2 | gooog2 |
[] | Bir aralığı temsil eder. Dizenin herhangi bir yerinde, herhangi bir sıralamayı izleyen, parantez içine alınmış karakterlerle eşleşir. | Ya[nl]ış | yanlış, yalnış | yanmış |
– | Dizenin herhangi bir yeriyle eşleşmesi için köşeli parantez içine alınmış bir karakter dizisi oluşturur | [0-9] şunlarla eşleşir: 0 ile 9 arası herhangi bir rakam | ||
{a} | Süslü parantez içindeki sayı kadar tekrar eder. | w{3} | www | w, ww |
{a,z} | a’dan z’ye kadar | w{1-3} | w, ww, www | wwww |
.* | Herşeyle eşleştirir | egitim.*sertifikasi | egitim katilim sertifikasi | |
Çıkış | ||||
\ | Bitişik karakterin, normal ifade meta karakteri yerine olduğu gibi yorumlanması gerektiğini belirtir. Örneğin \. bitişikteki noktanın, joker karakter yerine nokta veya ondalık ayırıcı olarak yorumlanması gerektiğini belirtir. | 212\.216\. | 212.216 | 212\216\ |
Yazıyı yazmam için ilham almamı sağlayan Analytics Akademi’ye ve eğitmen Mustafa Esad Tatlıpınar’da sonsuz teşekkürler.
Konuyla ilgili Analytics Akademi İleri Düzey Google Analytics Eğitimi Yazımı da inceleyebilirsiniz.
Yazımı okuduğunuz için teşekkürler. Faydalı olması dileğiyle.
Yorum ekle