Profile Filters i Google Analytics: Del 3 – Reguljära uttryck (RegEx)

Reguljära uttryck eller Regular Expressions (RegEx) på engelska är ett matchingsspråk som används för att söka efter förekomster av strängar inuti strängar. Det går att skapa väldigt exakta och avancerade regler för bestämma vad som ska anses vara en matching.

I Google Analytics används reguljära uttryck på flera ställen: när du skapar profile filters och mål (goals) eller vid sökningar. Även om det kan se avnacerat ut så är det relativt enkelt att med RegEx i Google Analytics matcha valfitt innehåll i ett fält.

Reglerna

Det finns ett antal tecken som betyder speciella saker, regler för vad som matchar. De som används i Google Analytics är följande:

. (punkt)

En punkt matchar ett valfritt tecken. Ett valfritt tecken betyder i det här fallet valfri bokstav, siffra eller tecken. ”Kol.a” skulle matcha Kolla och Kolna, men inte Kola. Det skulle dessutom matcha kombinationer som Kol8a eller Kolaa.

* (stjärna)

En stjärna matchar noll eller fler av föregående tecken. Det betyder att ”Kol*a” skulle matcha Koa, Kola, Kolla, Kollla osv.

+ (plus)

Plus matchar minst ett av föregående tecken. ”Kol+a” skulle matcha Kola, Kolla, Kollla osv men inte Koa.

? (frågetecken)

Frågetecken matchar noll eller ett av det föregående tecknet. Det gör att ”Kol?a” matchar Koa och Kola men inte Kolla.

| (pipe)

Används för att göra alternativ, kan uttalas som ”eller” för att göra det enklare att förstå. a|b matchar alltså antingen a eller b. I ett verkligt exempel skulle P(e|ä)r matcha både Per och Pär.

^

Används för att indikera att sökningen ska starta från början av strängen. Det efterföljande tecknet skall alltså vara det första i strängen. ^namn matchar både ”namn” och ”namnet”, men inte ”mittnamn”.

$ (dollartecken)

Används för att indikera att sökningen ska starta från slutet av strängen. Föregående tecken skall alltså vara det sista i strängen. För att återanvända föregående exempel så matchar namn$ ”mittnamn” och ”namn” men inte ”namnet”.

( ) (paranteser)

Paranteser används för att gruppera alternativ, oftast i samband med |-symbolen. (hem|webb)sida matchar både hemsida eller webbsida.

[ ] (hakparanteser)

Skapar en lista av tecken som alla matchar. [abc] matchar alltså a, b eller c. På samma sätt matchar Volvo [17]40 både ”Volvo 140” och ”Volvo 740”.
Det finns en specialregel gällande ^ innuti hakparanteser, placeras ^ först inom hakparantesen betyder det ”inte”. Exempelvis betyder [^0-9] att tecknet inte får vara en siffra.

– (minus)

Minustecknet används ihop med hakparanteser för att matcha valfritt tecken inom en serie tecken. [a-c] betyder precis samma sak som [abc] i exemplet ovan. Det fungerar på samma sätt med siffror [0-9] matchar alltså valfri siffra. En vanlig lista att använda inom hakparanteser är att matcha alla ”vanliga” tecken, dvs alla bokstäver och siffror. En sådan matching (för engelska tecken, som ju vanligtvis förekommer i urler) skulle se ut som [a-zA-Z0-9].
Vill du används minustecknet som ett tecken att matcha inom hakparanteserna så placeras den först, [-a-c] matchar alltså a, b, c eller -.

\ (backslash)

Eftersom dessa tecken ovan har så speciella betydelser så tolkas de alltid som regler, men det finns tillfällen då du behöver använda en punkt i dess vanliga, alldagliga, betydelse. Genom att sätta \ framför så tolkas efterföljande tecken inte som en regel utan som det tecken det verkligen är. I förra delen av artikelserien handlade det om IP adresser, det är ett typiskt exempel för när \ är nödvändigt: i ett IP ska punkterna verkligen vara punkter därför måste en IP anges som 200\.110\.13\.22 om regex används.

{n} (måsvingar)

En ganska avancerad regel som inte finns dokumenterad på Google Analytics hjälpsidor är måsvingarna. De används för att upprepa föregående regel/tecken n gånger. Genom att ange ett tal inom måsvingarna, n, anges hur många gånger föregående regel/tecken ska upprepas. {2} anger exempelvis att något ska upprepas två gånger.
Anges två tal så som {2,4} betyder det att något ska upprepas minst två och som mest fyra gånger.

Om du inte specificerar några regler fungerar matchingen i alla fall. Som exempel, ”sida” matchar webbsida, sidan, framsida, framsidans och alla andra kombinationer som innehåller ”sida” någonstans.

Några vanliga exempel

^/artiklar/

Från början (Google Analytics räknar automatiskt bort domännamnet) skall strängen innehålla /artiklar/. Den här regeln kan i kombination med fältet Request URI användas för att i en profil exempelvis endast visa trafiken för de filer som sorterar under mappen artiklar.

^220\.241\.13\.45$

Ett ip bör anges med både ^ (start) och $ (slut) för att vara säker på att inte matcha andra alternativ än vad som avses. Punkterna måste dessutom anges som \. för att de inte ska tolkas som regex regler.

.*

Kombinationen punkt och stjärna betyder fånga allt eftersom punkt motsvarar exakt ett tecken och stjärnan säger upprepa föregående tecken noll eller fler gånger