Jak na regulární výrazy v Mergadu — III. díl
-
[^\d] odpovídá jednomu znaku, který není číslice,
-
[^\s] odpovídá jednomu znaku, který není mezera (nejde o bílý znak).

EAN
1. Hromadné odstranění EAN kódů z popisku produktů

2. Kontrola EANu
-
Stříška a dolar označují začátek a konec řetězce, ve kterém vyhledáváme (oproti předchozímu příkladu tentokrát EAN neobklopuje další text).
-
\d vyhledává číslice – buď přesně 8 libovolných číslic (osmička ve složené závorce) nebo (svislítko) přesně 12 – 14 libovolných číslic.
Odebrání velikosti z PRODUCTNAME
- velikost — hledáme řetězec, ve kterém je slovo „velikost“,
- hodnota velikosti – víme, že hodnoty označujeme písmenem (S, M, XL, …) a občas také kombinací písmena a čísla (např. 4XL). Proto použijeme zápis \d, který vyhledává všechna čísla od 0 do 9, a následně vyjmenujeme všechna písmena, z nichž alespoň jedno se ve výrazu nachází (proto hranaté závorky),
- toto označení může být kdekoli v řetězci, nepoužijeme tedy značky pro začátek nebo konec řetězce,
- mezi slovem “velikost” a samotnou hodnotou může být mezera (nebo více mezer) a nebo taky nemusí (např. velikostXL, velikost XL), proto použijeme vyhledávání mezer pomocí výrazu \s , hvězdička potom říká, že se tam má mezera vyskytovat 0 až nesčetněkrát,
- znaménko plus na konci řetězce určuje, že se celý hledaný výraz v hranatých závorkách vyskytuje v našem řetězci alespoň jednou.
Sledujte i další díl Jak na regulární výrazy v Mergadu nebo závěr seriálu o regulárních výrazech.

Luděk pomáhá zajistit Mergadovu českou podporu. V prostředí eshopů a internetového marketingu se pohybuje přes 16 let, aktuálně ho nejvíc baví PrestaShop a vše kolem něj. Když zrovna nepracuje pro Mergado, cvičí gymnastiku v Sokole nebo skáče přes překážky na biketrialovém kole.
Komentáře
Děkuji Peti. Tip bych měl, pokud potřebuješ najít duplicitní názvy produktů, měl by pomoci Mergadův XML audit. Nebo si v Mergadu můžeš na stránce Produkty vyexportovat produkty do CSV (je tam v rozbalovací nabídce volba exportu do CSV) a když si následně CSV soubor otevřeš v Excelu, Calcu, Numbers, apod., tak můžeš použít filtry a funkce těch programů.
Pokud jsem tvůj dotaz pochopil špatně a spíše chceš najt duplicitní slova v jednom elementu pomocí regulárních výrazů, tak samozřejmě i tohle jde. :-) Reg. výraz se může napsat více či méně složitě, pro naše účely hledání dat v Mergadu, ve smyslu např. PRODUCTNAME — obsahuje reg. výraz — ti věřím bude fungovat: (\s?\w+\s).*\1{1,}
Zjednodušené vysvětlení: najdi řetězec znaků (např. slovo), za kterým je mezera a taková skupina znaků (tedy např. to slovo) se opakuje v celém textu více, než jedenkrát. Podrobněji to kdyžtak rozvedu v příštím díle seriálu. ;-)
Luďo, perfektní. Tisknu si do své složky stejně jako předchozí dva díly /tento je nejvíce povedený/. A měl bys tip, jak pomocí regulárních výrazů zjistit, že jsou dva názvy produktů duplicitní. Marně si lámu hlavu nad tím, jak vytáhnout skupinu produktů se stejným (duplicitním názvem). Určitě to půjde, ale já jsem na to ještě nepřišla.