Pokud chcete vytvářet filtry, provádět vyhledávání nebo nastavovat cíle v Google Analytics nebo Angelfish Software, potřebujete základní znalosti regulárních výrazů. Tento článek je základním osvěžením.
Pro otestování vlastních regulárních výrazů použijte náš bezplatný tester regex.
Co jsou regulární výrazy?
Regulární výrazy (známé také jako regex) se používají k vyhledávání konkrétních vzorů v seznamu. V nástroji Google Analytics lze regex použít k vyhledání čehokoli, co odpovídá určitému vzoru. Můžete například najít všechny stránky v rámci podadresáře nebo všechny stránky s řetězcem dotazu delším než deset znaků.
Regulární výrazy poskytují výkonný a flexibilní způsob, jak popsat, jak má vzor vypadat, pomocí kombinace písmen, čísel a speciálních znaků.
Například zadáním html
do vyhledávacího pole v přehledech obsahu se vrátí všechny adresy URL, které obsahují „html“ kdekoli v cestě. Vráceny budou například následující stránky:
- /index.html
- /html-definitions.php
- /search.php?q=html+vs+php
Znak Escape: Zpětné lomítko
Pravidelné výrazy používají řadu speciálních znaků, které mají specifický význam. Toto je důkladný, ale ne úplný seznam speciálních znaků v regexu, které nesou nedoslovný význam.
^ $ . ? () + \
Příklad otazník znamená v regexu „předchozí znak je nepovinný“. Příklad v praxi si ukážeme později v tomto článku.
Chcete-li však hledat otazník, musíte „uniknout“ interpretaci otazníku v regexu. Toho docílíte tak, že těsně před otazník vložíte zpětné lomítko, například takto:
\?
Pokud chcete vyhledat znak tečky, uniknete mu přidáním zpětného lomítka před něj. Například \.html
by odpovídalo tečce následované řetězcem „html“.
Pokud chcete odpovídat sérii speciálních znaků za sebou, stačí escapovat každý znak zvlášť. Pro shodu s „$?“ byste zadali $\?
.
Zpětným lomítkem můžete escapovat jakýkoli speciální znak – dokonce i zpětné lomítko! \\
Pokud si nejste jisti, zda je znak speciálním znakem, nebo ne, můžete jej escapovat bez jakýchkoli negativních důsledků.
Znaky: Pravidelné výrazy odpovídají zadanému vzoru, pokud se vyskytují kdekoli v řetězci – na začátku, uprostřed nebo na konci. Existují kotvy, které můžete v regexu použít k určení, že se vzor má vyskytovat pouze na začátku nebo na konci. Tyto kotevní znaky jsou:
^ $
Pro ukotvení vzoru na začátek použijte symbol caret (^). Pro ukotvení vzoru na konec použijte znak dolaru ($). Můžete použít jeden z nich nebo oba ve tvaru
^/page
bude odpovídat „/pages.html“, „/page/site.php“ a „/page“. Nebude odpovídat „/site/page“ nebo „/pag/es.html“.
^car$
bude odpovídat pouze „car“ a ^$
bude odpovídat pouze prázdným řetězcům.
$/google.php^
nebude odpovídat ničemu, protože je to špatný regex – caret by měl být vždy vlevo od dolaru: ^/google.php$
Rozsah znaků
Regex lze také použít k porovnání rozsahů nebo kombinací znaků. Hranaté závorky umožňují zadat různé znaky, které se mohou vyskytovat na určité pozici v řetězci.
Například by odpovídalo buď „e“, „i“, nebo „o“.
Dlouhý seznam znaků můžete zahrnout do hranatých závorek, ale jednodušší je porovnat rozsah znaků pomocí pomlčky. Například:
bude odpovídat libovolnému malému písmenu od a do z. (Služba Google Analytics ve výchozím nastavení nerozlišuje velká a malá písmena.)
bude odpovídat libovolnému malému písmenu, velkému písmenu nebo číslu.
bude odpovídat a, b, c, d, X, Y nebo Z.
V hranatých závorkách se hledí na každý jednotlivý znak, ne na celá slova.
Shoduje se s jediným výskytem „w“, „o“, „r“ nebo „d“.
Chcete-li shodovat řetězec znaků, uzavřete je do závorek a použijte fajfku (|) jako znak „nebo“. Například pro přiřazení výskytu „cat“ nebo „dog“ napíšete:
(cat)|(dog) OR (cat|dog)
.
Nakonec pro přiřazení libovolného znaku použijte tečku. Je to jako zástupný znak pro jeden znak:
car.s
bude odpovídat „carrs“, „car?s“, „car5s“ atd.
Pakující se vzory
S regexem můžete dokonce určit, kolikrát se má vzor vyskytnout.
Otázka za znakem bude odpovídat nule nebo jednomu výskytu znaku. Tím se znak stává volitelným:
aa?pple
bude odpovídat „aapple“ nebo „apple“.
Znak plus odpovídá jednomu nebo více výskytům.
a+
bude odpovídat „a“, „aa“, „aaaaaaaaaa“ atd.
Hvězdička odpovídá nule nebo více výskytům předchozího znaku. V kombinaci s tečkou se „.*“ běžně používá jako zástupný znak, protože odpovídá čemukoli.
.*
bude odpovídat jakýmkoli neprázdným řetězcům.
Kudrnaté závorky umožňují odpovídat určitému rozsahu výskytů. Určujete minimální a maximální počet výskytů.
ca{3,5}t
bude odpovídat „caaat“, „caaaat“, „caaaaat“, ale ne „cat“ nebo „caaaaaaaaat“.
Další kroky
Pomocí našeho bezplatného testeru regexů můžete otestovat vlastní regulární výrazy. Neváhejte a přidejte si stránku do záložek!