Kde jste: Hlavní stránkaRegulárne výrazy (regulární výrazy) vs. Google Analytics – podrobné příklady

Regulárne výrazy (regulární výrazy) vs. Google Analytics – podrobné příklady

Vydáno v blogu Digitální analytika, CRO a UX

Dobrý sluha, zlý pán. Presne toto ustálene spojenie platí aj pre regulárne výrazy (regulární výrazy, regular expressions, regex, regexp). Ak si ich osvojíte, budú vám slúžiť v mnohých oblastiach. Avšak ako toho docieliť, keď sa spočiatku zdajú tak nedostupné?

Hlavné je začať, to ostatné metódou pokus omyl, príde samo. Ja sa posnažím napísať nasledujúce riadky tak, aby bolo omylov na vašej strane čo najmenej.

Regulárne výrazy sa používajú najmä pri práci s textom. Na základe pravidiel pre regulárne výrazy, vytvoríme masku a potom zisťujeme, či daný text tejto maske vyhovuje. Zjednodušený príklad z reálneho sveta by sme mohli nájsť pri hrabaní lístia. Kde samotné hrable (regulárny výraz) sú nástrojom zostrojeným na zachytávanie listov (dát). A ak si vyberieme správne hrable a vieme s nimi narábať, úspech je zaručený.

Pri vytváraní regulárnych výrazov používame metaznaky. Vďaka metaznakom môžeme vytvoriť regulárny výraz, ktorý bude zahŕňať mnoho alternatív textových reťazcov. Metaznaky sú vlastne znaky, ktorým bola pridelená určitá funkcia.

Prehľad základných metaznakov

\

Spätné lomítko je svojim charakterom jedinečný znak. Jeho úlohou nie je nič viac ani nič menej, než zabrániť ostatným metaznakom v ich pôvodnej funkcii. Teda \ nám z metaznaku spraví obyčajný znak. Je akýmsi prechodom medzi znakmi a metaznakmi. Využiť ho môžeme všade, kde potrebujeme deaktivovať metaznak (IP adresy, URL adresy…).

Príklady:

128\.244\.128\.111

– IP adresa obsahuje metaznak .(bodka), ktorému je potreba zabrániť vo funkcii. Funkciu bodky musíme rušiť aj pri rôznych skratkách, napr\.
http://www.google.com/search\?aq=f&sourceid=chrome&ie=UTF-8&q=regexp

-odkazy taktiež často obsahujú metaznak ?(otáznik), ktorý už má však svoju funkciu, pomocou \ ho prevedieme na obýčajny znak

.

Bodka zastupuje akýkoľvek znak. Prostrednictvom nej hovoríme niečo v zmysle, chcem aby tu niečo bolo, nezaujíma ma čo, hlavne nech to tam je. Bodka je jeden z náročnejšich metaznakov. Znie jednoducho, avšak jej kúzlo spočíva v schopnosťi dopĺňať iné metaznaky.

Príklad:

-tieto tri bodky môžu znamenaž ANO, ano ale aj NIE, nie : preto pozor na použitie, či nam náhodou bodka nepokryje aj oblasť, ktorú nechceme.

()

Obyčajné zátvorky, podobne ako v matematike, slúžia na uzátvorkovanie výrazov. Použijeme ich, ak sa chceme uistiť, že daný regulárny výraz bude vyhodnotený tak ako chceme a nie ináč. Majme matematický zápis 2+2*3=?, tento zápis sa vyhodnotí ako 2+6=8, avšak ak použijeme zátvorky dostaneme (2+2)*3=? vyhodnotí sa ako 4*3=12. Na predchadzajúcich príkladoch vidíme, že na zátvorkovaní naozaj záleží.

Príklad:

Majme výraz, ktorý nam označuje mieru zúfalstva, čim viac e v slove nie, tým viac zúfalstva : a čím viac krát napísané, tým viac naliehavé.

(Nie)+ oproti Nie+

-v prvom prípade získame akokoľvek naliehavé Nie NieNie NieNieNie v druhom prípade zasa akokoľvek zúfale Nie Nieeeee Nieeeeeeeee, zátvorky si môžeme predstaviť aj tu, a to Ni(e)+

(|) [-] – Metaznaky používané na určenie rozsahu

(|) sa skláda zo zátvoriek a logickej spojky alebo. Výuživame ho v prípade, že máme viacero alternatív, z ktorých potrebujeme jednu vybrať. Nutnosťou je vypísať všetky možnosti, z ktorých si vyberáme.

Príklady:

(Lukas Imrich|Lukas|Imrich)

-tento reg. výraz odchytí, buď Lukas Imrich alebo Lukas alebo Imrich, avšak nič iné

[-] tvorí kombináciu, ktorá umožní zadať rozsah bez nutnosti vypísania všetkých prvkov. Avšak môžme použit aj verziu bez -, teda []. V tomto prípade, je nutnosťou opat zadať všetky možne varianty. Pozor každý jeden znak je v tomto prípade aj prvkom rozsahu. V súvislosti s hranatými zátvorkami nadobúda ^, nový význam. A to negáciu.

Príklady:

[a-q]

-písmena od a po q

 

[abcdefg]

-písmená a, b, c, d, e, f, g, mohli by sme zapísať ekvivalentne pomocou (a|b|c|d|e|f|g)

 

[^abc],[^a-c]

-všetko okrem, malých písmen a,b,c

? + * {}

? označuje opakovanie predchádzajúceho znaku 0 az 1 krát. Použivame ho v prípadoch, že predchadzajúci znak chceme spraviť voliteľným.

Príklad:

Máme brandový výraz KM a chceme odfiltrovať aj jeho alternatívy s bodkami.
K\.?M\.?

-reg. výraz nam odchytí nielen KM ale aj K.M, aj K.M, aj KM.

 

+ označuje opakovanie predchádzajúceho znaku 1 až viackrát. Použiváme ho v prípadoch, že predchádzajúci znak chceme mať aspoň 1 krát, no nevieme jeho maximálnu početnosť.

Príklad:

Majme výraz, ktorý nám označuje mieru zúfalstva, čim viac e v slove nie, tým viac zúfalstva :.
Nie+

-tento výraz nam zachytí akokoľvek zúfale nie, teda nie, niee, nieee, nieeeeeee ale slovo ne nebude akceptovať.

* označuje opakovanie predchádzajúceho znaku 0 až viackrát. Použiváme ho v prípadoch, že predchádzajúci znak sa môže, ale nemusí výskytnúť, nevieme ani jeho maximálnu početnosť.

Príklad:

Chceme prejsť určitou časťou slova, ktorá nás nezaujíma až narazíme na časť slova, ktorú hľadáme.
.*hladane_slovo

-spojenie bodky a hviezdičky nam zaručí, že preskočime všetkú nezaujimavú vatu až sa dostaneme k hľadanému výrazu, odchytíme slová ako najviac hladane_slovo, najmenej hladane_slovo.

{} pomerne univerzálny metaznak, dokážeme ním vyjadriť predchádzajúce tri a ešte kúsok navyše.

{0,1} = ?

{1,} = +

{0,} = *

Z hore uvedených rovností, už možno viete o čo tu ide. Ak si označíme nezáporné celá čisla ako x,y potom v {x,y} nám x udáva minimálny počet opakovaní a y zasa maximálny počet opakovani. Ak y vynecháme, potom maximálna početnosť je ľubovolná.
Bonus oproti *,+,? spočíva v možnosti presného počtu opakovaní. Teda {3} označuje presne 3 opakovania predchádzajúceho znaku.

^ $

Začiatok a koniec. Metaznaky, ktoré dokážu umierniť ináč nenásytne regulárne výrazy. Ak ich nepoužijeme, tak regulárnemu výrazu je jedno, kde sa v textovom reťazci dopracuje k zhode či na začiatku, či na konci, či hocikde medzitým.

Príklady:

Máme slovo zradiť a chceme ho zachytiť pomocou regulárneho vyrázu zradiť.

-vyráz zradiť sa zhoduje aj so slovami ako prezradiť, vyzradiť, čo sú však slová významom úplne odlišné, ich odlišnosť sposobuje predpona, ktorá je však akceptovaná nenásytnosťou regulárnych výrazov. Preto ukotvíme slovo ^zradiť, čo nám zabezpečí zhodu len s výrazmi, ktoré skutočne začínajú slovom zradiť.

 

Ďaľšie použitie môžeme nájsť pri IP adresách

– 192\.168\.1\.1$ alebo ^72\.168\.1\.128

V prvom prípade potrebujeme zamedziť zhode s IP adresami ako 192.168.1.15, 192.168.1.16 ….
V druhom prípade chceme zamedziť zhode s 172.168.1.128

\d \s \w Sú zástupcami (skratkami) často používaných skupín znakov

\d zastupuje akékoľvek číslo, ekvivalent [0-9],

\s zastupuje medzeru,

\w zastupuje akékoľvek číslo alebo písmeno alebo _ (podtržník), [A-Za-z0-9_].

Príklad:

(\d{1,5}\s\)?w*

-vyráz sa bude zhodovať s 99999 hocico, 9999 hocico aj s 9 ale aj s hocico. Ak výraz rozoberiem postupne, potom:

  • ()? označuje opakovanie zátvorky 0 alebo 1x,
  • \d{1,5}s samotný obsah zátvorky nám hovorí, že obsahuje čislo, minimálne jednociferné maximálne päťciferné, nasledované medzerou,
  • w* značí, že za medzerou sa môže (ale nemusí) nachádzať, ľubovolne dlhý reťazec tvorený čislami písmenami a „_“ .

Regulárne výrazy v službách Google Analytics

V GA môžeme regulárne výrazy použiť všade, kde je potrebný určitý typ zhody:

  1. vytváranie filtrov,
  2. nastavenie cieľov a špecifikovanie krokov,
  3. pokročilé segmenty,
  4. filtrovanie v prehľadoch.

 

Nastaveniu filtrov treba venovať veľkú pozornosť. Pretože omnoho viac priamo zasahujú do zbierania dát, na rozdiel od segmentov. Ďalšia odlišnosť od segmentov, je menšia možná miera nastavitelnosti priamo cez užívateľské rozhranie. Tento hendikep odstránime využitím regulárnych výrazov. Vďaka nim môžeme vytvoriť elegantné riešenia, ktoré presne obsiahnu náš úmysel.

 

Príklad:

Na obrázku vidíme, okno s nastavením nového filtru. Regulárny výraz zadáme do poľa, ktoré je zvýraznené modrou farbou. V tomto konkrétnom prípade, sa jedna o vyradenie návštevnosti z konkrétnej zemepisnej domény. Ak potrebujeme vyradiť viacero domén(.uk, .de, .us ) stačí použiť nasledovný výraz: \.(uk|de|us).

A to je len jeden z mnohých príkladov. Filtrovať môžeme takmer čokoľvek, kampane, IP adresy, nastavenia prehliadača návštevníka… ?

 

Regulárne výrazy sa zídu najmä v prípade, že pod jedným cieľom chceme schovať viacero čiastočných cieľov. Pričom spojenie jednotlivých podcieľov, umožňujú práve regulárne výrazy. To isté platí aj pri definovaní krokov k cieľu. V jednom kroku môžeme pomocou regulárneho výrazu zahrnúť viacero podkrokov.

Príklad:

Oranžovo podsvietené pole označuje nutne nastavenie pre spracovanie regulárneho výrazu. Do modrého opäť zadáme samotný reg. výraz. Predstavme si situáciu, kde mame web a ako cieľ chceme nastaviť stránku, ktorá zobrazuje poďakovanie, ale aj stránku, ktorá zobrazuje potvrdenie. Situáciu rieši reg. výraz:
/(dakujeme|potvrdenie)\ php

 

Pokročilé segmenty na rozdiel od filtrov manipulujú s dátami až na úrovni zobrazenia. Ponúkajú obrovskú variabilitu nastavení, znalosť regulárnych výrazov tu už nie je natoľko nutná, no stále užitočná.

Príklad:

Opäť oranžovo podsvietené pole označuje nutnú voľbu pre použitie reg. výrazu. Buď požadujeme dáta, ktoré sa s reg. výrazom zhodujú, alebo ich doplnok. Modre pole slúži na zadanie reg. výrazu.

Modelovou situáciou by v tomto prípade bolo, zistenie návštevníkov, ktorý si prečítali určite články(/clanok-nazov1; článok nazov2) a zároveň neprišli cez vyhľadávač.

Časť Page: /clanok-(nazov1|nazov2).

Časť Medium: organic.

V uvedenom príklade nebolo nutné použiť regulárny výraz, avšak riešenie hore uvedené riešenie je kratšie, elegantnejšie.

 

V prehľadoch máme rýchlo dostupné údaje, ktorá môžeme spracovať buď cez pripravené segmenty, alebo práve cez možnosť filtra v dolnej časti tabuľky s dátami. Filter je pomerne prepracovaný umožňuje takmer rovnaké možnosti ako pokročilé segmenty. Použitie nájde pri hľadaní špecifických informácii.

Príklad:

Potrebujeme zobraziť v prehľade stránky, ktoré končia slovom blog.Do modrého poľa zadáme reg. výraz: blog$.

Použité zdroje:

 

 

Doporučte tento článek přátelům Nechte si zasílat čtrnáctidenní přehled našich článků na e-mail
Odebírejte newsletter:

Přečtěte si další články k tématu

Komentáře

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>