V úvodnom dieli našej minisérie o regulárnych výrazoch sme sa venovali tomu, čo to vôbec sú regulárne výrazy a vysvetlili sme použite niektorých základných značiek. Teraz na tento úvod nadviažeme a predstavíme si ďalšie značky a ich praktické využitie.

Zátvorky

Hranaté zátvorky []
 
Hranaté zátvorky pomôžu s výberom takého textu, v ktorom sa vyskytuje jeden zo skupiny znakov, ktorú zadáme, teda napríklad:

  • Chceme nájsť všetky produkty, ktoré majú v názve nejaké číslo, použijeme regulárny výraz [0 – 9]. (Alternatívou je potom použitie výrazu \d, ktorý v regulárnych výrazoch predstavuje akúkoľvek číslicu), teda: PRODUCTNAME ~ obsahuje reg.výraz [0 – 9] alebo PRODUCTNAME ~ obsahuje reg.výraz \d
  • Hľadáme všetky produkty, ktoré majú v názve dvojciferné číslo, použijeme regulárny výraz [0 – 9] [0 – 9] (Alebo to isté zaistí použitie: \d\d)
  • Chceme nájsť všetky produkty, ktoré majú v názve nejakej písmeno z nasledujúcej množiny písmen: b, f, l, m, použijeme regulárny výraz [bflm]

Hranaté zátvorky

Okrúhle zátvorky ()

Okrúhle zátvorky umožňujú vyhľadávať v reťazci rôzne tvary jedného slova, pričom vyhľadajú všetky časti reťazca, v ktorých sa vyskytuje buď časť pred zátvorkou alebo celý výraz.

 

  • Chceme nájsť všetky produkty, ktoré majú v názve pneu alebo pneumatika, použijeme regulárny výraz pneu(matika)? (Vysvetlenie znaku ? sme uviedli v minulom článku)

Okrúhle zátvorky

Zložené zátvorky {}
 
Zložené zátvorky patria medzi kvantifikátory — určujú teda, koľkokrát sa dané písmeno alebo reťazec písmen v hľadanom texte vyskytuje. Napríklad:

  • Chceme nájsť všetky produkty, ktoré majú v názve písmeno A trikrát za sebou, použijeme regulárny výraz A{3}
  • Chceme nájsť všetky produkty, ktoré majú v názve písmeno A najmenej raz, maximálne dvakrát za sebou, použijeme regulárny výraz A{1,2}
  • Chceme nájsť všetky produkty, ktoré majú v názve písmeno A dva a viackrát za sebou, použijeme regulárny výraz A{2,} — napríklad u módy tak môžeme vytvoriť výber pre najväčšie veľkosti (XXL a väčšie)

Zložené zátvorky

Hraničné značky

Strieška ^
 
Pomocou tejto značky vyhľadávame na začiatku reťazca:

  • Chceme nájsť všetky produkty, ktorých názov začína číslom (tj. prvým znakom v názve produktu je číslo), použijeme regulárny výraz ^[0 – 9] alebo ^\d
  • Chceme nájsť všetky produkty, ktorých názov začína medzerou (tj. prvým znakom v názve produktu je medzera), použijeme regulárny výraz ^\s
  • Chceme nájsť všetky produkty, ktorých názov začína slovom Novinka (tj. v názve produktu je hneď na začiatku slovo “Novinka”), použijeme regulárny výraz ^Novinka

Strieška

Dolár $
 
S pomocou “dolára” vyhľadávame požadované znaky na konci reťazca:

  • Chceme nájsť všetky produkty, ktorých názov končí číslom (tj. Posledným znakom v názve produktu je číslo), použijeme regulárny výraz [0 – 9]$ alebo \d$
  • Chceme nájsť všetky produkty, ktorých názov končí medzerou (tj. Posledným znakom v názve produktu je medzera), použijeme regulárny výraz \s$
  • Chceme nájsť všetky produkty, ktorých názov končí slovom Novinka (tj. V názve produktu je úplne na konci “Novinka”), použijeme regulárny výraz Novinka$

Tip: Dolár na klávesnici napíšete napr. cez klávesovú skratku pravý Alt + ô.

Strink alebo znak dolár

Zvislá čiara |
 
Táto značka funguje podobne ako operátor OR, slovensky by sme povedali “alebo” — vyhľadá teda také položky, v ktorých sa vyskytuje jeden alebo druhý (tretí, štvrtý, piaty…) zo zadaných výrazov, teda:

  • ak chceme nájsť všetky produkty, ktorých názov obsahuje veľkosť alebo objem (tj. kdekoľvek v názve produktu bude jeden alebo druhý hľadaný výraz), použijeme regulárny výraz Veľkosť|Objem

Zvislá čiara

Znak “s” so spätným lomítkom \s
 
Pomocou tohto znaku dokážeme vyhľadávať, a následne napríklad odstrániť medzery (a ďalšie biele znaky akými sú tabulátory alebo nezalomitelné medzery), môže sa nám teda hodiť pri:

  • Hľadaní všetkých produktov, ktorých názov obsahuje konkrétny viacslovné text: “Objem100ml”. K tomu použijeme regulárny výraz Objem\S100\sml
  • Odhaľovanie práve dvoch medzier vedľa seba, kedy použijeme regulárny výraz \s\s
  • K vyhľadávaniu rôzneho počtu medzier je potom efektívnejšie použiť výraz s kvantifikátorom plus (pozri predchádzajúci článok) \s+, ktorý odhalí minimálne jednu a maximálne nekonečno medzier za sebou.

Spätné lomítko

Tip: v Mergade pri regulárnych výrazoch nezáleží na tom, či hľadáte text zadaný malými alebo veľkými písmenami. Keď budete hľadať slovo “Veľkosť”, nájde sa: “Veľkosť”, “veľkosť” alebo napríklad aj “veľkosť”.

V ďalšom dieli seriálu sa už môžete tešiť na konkrétne kombinácie a riešenia zložitejších výberov v Mergade pomocou regulárnych výrazov.

Luděk Volejník

Senior konzultant Mergada Luďek pôsobil v oblasti e‑commerce vyše 15 rokov. Ostrieľaný support master a lektor vás viedol zákutiami Mergada aj svetom regulárnych výrazov. Na svojom konte má stovky vyškolených užívateľov Mergada, ktorí sa stali uznávanými odborníkmi na feed marketing, PPC a SEO.