V úvodním díle naší minisérie o regulárních výrazech jsme se věnovali tomu, co to vůbec jsou regulární výrazy a vysvětlili jsme používání některých základních značek. Nyní na tento úvod navážeme a představíme si další značky a jejich praktické využití. 

Závorky

Hranaté závorky []

Hranaté závorky pomohou s výběrem takového textu, ve kterém se vyskytuje jeden ze skupiny znaků, kterou zadáme, tedy například: 

  • Chceme najít všechny produkty, které mají v názvu nějaké číslo, použijeme regulární výraz [0 – 9] 
    (alternativou je potom použití výrazu \d, který v regulárních výrazech představuje jakoukoli číslici), tedy: PRODUCTNAME ~obsahuje reg.výraz [0 – 9] nebo 
    PRODUCTNAME ~obsahuje reg.výraz \d
  • Hledáme všechny produkty, které mají v názvu dvouciferné číslo, použijeme regulární výraz [0 – 9][0 – 9]
    (nebo to samé zajistí použití: \d\d)
  • Chceme najít všechny produkty, které mají v názvu nějaké písmeno z následující množiny písmen: b, f, l, m, použijeme regulární výraz [bflm]

Kulaté závorky ()

Kulaté závorky umožňují vyhledávat v řetězci různé tvary jednoho slova, přičemž vyhledají všechny části řetězce, ve kterých se vyskytuje buď část před závorkou nebo celý výraz. 

  • Chceme najít všechny produkty, které mají v názvu pneu nebo pneumatika, použijeme regulární výraz pneu(matika)? (vysvětlení znaku ? jsme uvedli v minulém článku)

Složené závorky {}

Složené závorky patří mezi kvantifikátory – určují tedy, kolikrát se dané písmeno nebo řetězec písmen v hledaném textu vyskytuje. Například: 

  • Chceme najít všechny produkty, které mají v názvu písmeno A třikrát za sebou, použijeme regulární výraz A{3}
  • Chceme najít všechny produkty, které mají v názvu písmeno A nejméně jednou, maximálně dvakrát za sebou, použijeme regulární výraz A{1,2}
  • Chceme najít všechny produkty, které mají v názvu písmeno A dva a vícekrát za sebou, použijeme regulární výraz A{2,} - například u módy tak můžeme vytvořit výběr pro největší velikosti (XXL a větší)

Hraniční značky 

Stříška ^ 

Pomocí této značky vyhledáváme na začátku řetězce: 

  • Chceme najít všechny produkty, jejichž název začíná číslem (tj. prvním znakem v názvu produktu je číslo), použijeme regulární výraz ^[0 – 9] nebo ^\d
  • Chceme najít všechny produkty, jejichž název začíná mezerou (tj. prvním znakem v názvu produktu je mezera), použijeme regulární výraz ^\s
  • Chceme najít všechny produkty, jejichž název začíná slovem Novinka (tj. v názvu produktu je hned na začátku slovo “Novinka”), použijeme regulární výraz ^Novinka

Dolar $ 

S pomocí “dolaru” vyhledáváme požadované znaky na konci řetězce: 

  • Chceme najít všechny produkty, jejichž název končí číslem (tj. posledním znakem v názvu produktu je číslo), použijeme regulární výraz [0 – 9]$ nebo \d$
  • Chceme najít všechny produkty, jejichž název končí mezerou (tj. posledním znakem v názvu produktu je mezera), použijeme regulární výraz \s$
  • Chceme najít všechny produkty, jejichž název končí slovem Novinka (tj. v názvu produktu je úplně na konci “Novinka”), použijeme regulární výraz Novinka$

Tip: Dolar na klávesnici napíšete např. přes klávesovou zkratku AltGrů, více způsobů najdete pod tímto odkazem.

Svislítko |

Tato značka funguje podobně jako operátor OR, česky bychom řekli “nebo” — vyhledá tedy takové položky, ve kterých se vyskytuje jeden nebo druhý (třetí, čtvrtý, pátý…) ze zadaných výrazů, tedy: 

  • pokud chceme najít všechny produkty, jejichž název obsahuje velikost nebo objem (tj. kdekoliv v názvu produktu bude jeden nebo druhý hledaný výraz), použijeme regulární výraz Velikost|Objem

Znak s se zpětným lomítkem \s

Pomocí tohoto znaku dokážeme vyhledávat, a následně třeba odstranit mezery (a další bílé znaky jakou jsou tabulátory nebo nezalomitelné mezery), může se nám tedy hodit při: 

  • Hledání všech produktů, jejichž název obsahuje konkrétní víceslovný text: “Objem<mezera>100<mezera>ml”. K tomu použijeme regulární výraz Objem\s100\sml
  • Odhalování právě dvou mezer vedle sebe, kdy použijeme regulární výraz \s\s 

K vyhledávání různého počtu mezer je potom efektivnější použít výraz s kvantifikátorem plus (viz předchozí článek\s+, který odhalí minimálně jednu a maximálně nekonečno mezer za sebou.

Tip: V Mergadu u regulárních výrazů nezáleží na tom, zda hledáte text zadaný malými nebo velkými písmeny. Když budete hledat slovo “Velikost”, najde se: “Velikost”, “velikost” nebo třeba i “VeLiKoSt”. V dalším díle seriálu se už můžete těšit na konkrétní kombinace a řešení složitějších výběrů v Mergadu pomocí regulárních výrazů. 

Luděk Volejník

Senior konzultant Mergada Luďek působil v oblasti e‑commerce přes 15 let. Ostřílený support master a lektor vás prováděl zákoutími Mergada i světem regulárních výrazů. Na svém kontě má stovky vyškolených uživatelů Mergada, kteří se stali uznávanými odborníky na feed marketing, PPC a SEO.