Regulárne výrazy sú skvelými pomocníkmi pri vyhľadávaní, filtrovaní, úprave dát či nastavovaní cieľov. Potrebujete vyhľadať všetky 5-ciferné kódy v názve produktu, odstrániť z e-mailovej databázy všetky e-maily končiace na @gmail.com alebo pokročilejšie filtrovať v Google Analytics? V týchto prípadoch klasické vyhľadávanie nestačí, prípadne je veľmi neefektívne. Našťastie sú tu regulárne výrazy, ktoré nám v týchto prípadoch ochotne pomôžu.
Regulárne výrazy (skratka regex) sú reťazce, ktoré na základe určitých pravidiel opisujú nejakú skupinu znakov. Predstaviť si to môžeme ako nejakú “masku”, vďaka ktorej vieme v texte vyhľadať napríklad spomenuté 5-ciferné číslo aj bez toho, aby sme vedeli o aké presné číslo sa jedná. Toto docielime napríklad pomocou výrazu \d{5}, kde \d znamená číslo od 0-9 a {5} znamená päť číslic po sebe, dokopy to teda dáva tzv. “masku”, ktorá hľadá 5 čísel za sebou. V skratke teda pomocou regulárnych výrazov zostavíme reťazec, ktorý opisuje časť textu, ktorý hľadáme, pričom nemusíme poznať presný text ktorý hľadáme, len jeho “štruktúru”.
Príklady využitia sú naozaj široké, regulárne výrazy je možné použiť aj napr. v obyčajných Google tabuľkách. Z marketingových nástrojov sa s nimi stretávame napríklad v Google Analytics, Google Tag Manager, Mergado.
V tomto článku sa pozrieme bližšie na to, ako s regulárnymi výrazmi pracovať a kde regulárne výrazy výrazne uľahčia prácu (nielen v marketingu).
Základné znaky
V regulárnych výrazoch sa pre určité znaky/skupiny znakov používajú nasledujúce symboly a zápisy. Uvedieme si niekoľko základných príkladov.
Konkrétne príklady regulárnych výrazov a ukážky, ktoré zápisy by sa zhodovali s regulárnym výrazom a ktoré nie.
Ako to pomôže
Regulárne výrazy sa najčastejšie používajú na vyhľadávanie a prípadné nahradenie určitého textu iným textom (alebo ničím, tým pádom len odstránia neželaný text). Veľmi prospešné sú najmä v prípade veľkého množstva údajov, kde výrazne urýchľujú prácu. Ich skvelou vlastnosťou je, že opisujú určitú množinu znakov, ktorú vieme opísať pomocou regulárneho výrazu, pričom nemusíme poznať presné údaje, ktoré hľadáme. Predstavme si napríklad, že máme produkty, ktoré majú nasledujúce názvy:
Pánske topánky Nike 48745
Pánske polo tričko 775
Pánska riflová bunda 9974
….
Pomocou regulárnych výrazov môžeme odstrániť ID produktu z názvov produktov, pričom každý názov je iný a obsahuje jedinečné ID. Čo však majú tieto ID spoločné je, že majú niekoľko čísel a nachádzajú sa na konci názvu. Pomocou jednoduchého regulárneho výrazu “\s\d+$” vyhľadáme všetky čísla, ktorým predchádza medzera (\s je v regulárnych výrazoch znak pre medzeru), pričom sa nachádzajú na konci reťazca. Po nahradení týchto reťazcov “ničím” nám ostanú čisté názvy produktov bez ID v názve.
Konkrétne príklady využitia
Vo svete marketingu nám regulárne výrazy šetria čas a pomôžu tam, kde jednoduché vyhľadávanie nestačí. Využijeme ich napríklad pri analýze výkonnosti, nastavovaní cieľov aj pri úpravách dát napr. v produktových XML feedoch. Pozrime sa na konkrétne možnosti využitia regulárnych výrazov.
Google Analytics
Pri zadávaní filtrov dimenzií, či metrík v Google Analytics sa využíva primárne ako typ zhody Zhoda s regulárnym výrazom. Po zadaní jednoduchého filtra s jedným slovom, napr. “google” filter funguje ako klasická podmienka “obsahuje”.
Ak však chceme zobrazit napr. dáta z Heureky a Facebooku v jednej tabuľke, musíme si pomôcť regulárnym výrazom. Zápisy typu “heureka, facebook” fungovať nebudú. Je nutné použiť regulárny výraz, aby tento filter fungoval. V tomto prípade stačí pridať medzi požadované dimenzie znak alebo “|” (zvislítko, ľavý alt+124). Správny zápis je teda “heureka|facebook” Tento znak je možné použiť aj viackrát, v prípade ak chceme zobraziť viac dimenzií.
Bežným problémom, ktorý spôsobuje “roztrieštenie” dát v Google Analytics je, že aj keď sa ľudia dostanú na web z jedného zdroja, Google Analytics priradí návštevu konkrétnym podstránkam. Často sa tento problém vyskytuje pri Heureke a Facebooku. Riešenie tohto problému je opäť ukryté v regulárnych výrazoch.
Pomocou filtrov zobrazenia je možné nahradiť všetky takéto zdroje do jedného (napr. facebook/facebook.com). Nastavenie je nasledovné:
Tento regulárny výraz hľadá všetky zdroje, ktoré končia($) na facebook.com a čokoľvek na začiatku pred tým(^.*). Výsledkom je, že všetky tieto zdroje zo subdomén zlúči do jedného zdroja a dáta sú tak prehľadnejšie:
Google Tag Manager
Regulárne výrazy pomôžu napríklad aj v triggeroch (spúšťačoch) v Google Tag Manager. V nasledovnom príklade pomocou jedného spúšťača sledujeme kliknutie na 6 rôznych tlačidiel na 6 rôznych jazykových mutáciách. Nie je teda nutné vytvárať 6 rôznych spúšťačov na každý button.
Ďalším príkladom využitia môže byť kliknutie na 4 rôzne e-mailové adresy, ktoré spustia určitú značku. Vďaka nasledovnému zápisu stačí jeden regulárny výraz na odsledovanie takýchto kliknutí.
Mergado
V rámci viacerých hromadných pravidiel v Mergade je možné zadávať do vyhľadávacích polí regulárne výrazy. Toto nám môže pomôcť napr. vo vyhľadávaní a odstraňovaní rôznych nežiadúcich prvkov vo feede ako sú ID produktov v názvoch, objemy / gramáže v názvoch, HTML znaky a mnohé ďalšie.
Tabuľky
Regulárne výrazy pomôžu aj pri obyčajných tabuľkách (napr. Google Sheets). Predstavme si, že chceme z databázy e-mailov odstrániť všetky gmail e-mailové adresy. Zostavíme si jednoduchý regulárny výraz, ktorý nám vyhľadá všetky maily, ktoré končia na “gmail.com” a nahradíme ich ničím, tým pádom ich odstránime. Následne už len stačí zoradiť stĺpec podľa abecedy a prázdne riadky vymazať.
Tipy na záver a užitočné odkazy
Regulárne výrazy sú skvelý pomocník, avšak dokážu aj uškodiť. Pred ich použím (najmä v prípade funkcie “nájsť a nahradiť”) si overte, či sa daný regulárny výraz skutočne vzťahuje len na ten text, ktorý nahradiť chcete. Používajte čo najpresnejší zápis regulárneho výrazu, veľmi prospešné sú znaky ^ (začiatok reťazca) a $ (koniec reťazca).
Jedna “maska” regulárneho výrazu sa dá napísať viacerými spôsobmi, napríklad 3 čísla je možné zapísať týmito spôsobmi :
\d\d\d
\d{3}
[0-9]{3}
Vybrať si môžete spôsob, ktorý vám najviac vyhovuje a ktorý vám príde najprehľadnejší.
Regulárne výrazy sa môžete učiť a testovať napríklad tu : https://regex101.com/. Tento nástroj vám môže pomôcť aj pri vyhľadávaní/odstraňovaní určitých dát z textu/tabuliek. Stačí skopírovať text/stĺpec tabuľky do tohto nástroja a vyhľadať požadovaný text, prípadne využiť funkciu substitúcie, ak chceme text nahradiť/vymazať.
Ak máte radi hry, otestujte sa z regulárnych výrazov v tejto tajničke : https://regexcrossword.com/