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ý , 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.