Jak rozdělit do proměnných hodnoty z elementu, ve kterém jsou oddělené oddělovačem, např. adresy obrázků

Ve vlákně Rozdělení proměnné pomocí regulárního výrazu najdete řešení, jak rozdělit kategorie pomocí oddělovače | na jednotlivé (samostatné) kategorie. Tento princip můžete použít pro jakékoliv jiné “explodování” hodnot oddělených nějakým oddělovačem.

Ukážeme si další příklad s obrázky:

Na naši technickou podporu občas přijde dotaz, jak rozdělit adresy obrázků, které jsou v jednom elementu dohromady s oddělovačem například takto:
Element IMAGES → hodnoty v něm: https://domena.cz/obrazek1.jpg;https://domena.cz/obrazek2.jpg;https://domena.cz/obrazek3.jpg atd.

A těchto URL adres obrázků tam bývá různý počet, např. 1 až 20.
Jak získat jednotlivé URL adresy obrázků a naplnit jimi samostatné elementy s obrázky?

Vytvoříme si v Mergadu nové proměnné, které potom můžeme použít v přepisovacím pravidle.

Regulární výraz pro tyto proměnné může vypadat různě, např. takto:

^(.*?)(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?(?:;(.+?))?$

Není nijak složitý, je jenom dlouhý :slight_smile:, protože se tam určitá část (?:;(.+?))? opakuje stále dokola (celkem 19x).

Ukázka zde: https://regex101.com/r/fBOtg1/4

Vytvoření proměnné v Mergadu potom může vypadat takto:

Tip: Jako testovací řetězec si tam klidně zadejte vlastní hodnotu, která bude mít maximální počet hodnot (v našem případě 20), ať se Vám nabídne vytvoření všech 20 proměnných.

2 Likes
Funkce | Audit XML | Agentury | Nápověda | Blog | Forum | Kontakt