Potřebovali jste někdy udělat z CSV tabulky (třeba exportované z Excelu) tabulku v HTML nebo dokonce vytvořit HTML se zcela vlastní strukturou (např. odrážkový seznam atp.)?

Ano? Pak se vám bude hodit jednoduché on-line řešení pro převod CSV na HTML (či XML, příp. transformaci CSV). Vše řeší jeden regulární výraz a pravidlo pro nahrazení zachycených částí textů (substringů).

Pokud trochu regulárním výrazům rozumíte, koukněte se přímo na ukázku.

Příklad

V našem případě je na vstupu CSV v US formátu, tj. oddělovač sloupců je čárka, nikoliv středník (jako v českém prostředí). Ukázkový řádek:

1, 1928, 22, "Janet Gaynor", "Seventh Heaven, Street Angel and Sunrise: A Song of Two Humans"

CSV má 5 sloupců: První tři sloupce jsou číselné a další dva řetězce. Je vidět, že řetězec může obsahovat i čárku. Tomu je přizpůsoben regulární výraz:

/([^,]+), ([^,]+), ([^,]+), "([^"]+)", "([^"]+)"/g

Z čeho se skládá?

  • / /g – jen obaluje obecně regulární výraz a g je příznak pro global match, tzn. hledej všechny výskyty (tj. i více výskytů)
  • část ([^,]+), zachytává číselné sloupce: ([^,]+), říká: zachyť (kulaté závorky) řetězec o 1 a více (+) libovolných znacích kromě (^) znaku čárky a zachytávaná část je ještě následované znaky čárka a mezera
  • část "([^"]+)", funguje analogicky, jen zachytáváme až část mezi uvozovkami a tedy uvnitř uvozovek řetězec o 1 a více znacích, které jsou cokoliv kromě uvozovek

Textové editory nebo třeba nástroj Regexr umožnit nahrazení řetězců pomocí regulárních výrazů – tzn. v řetězci náhrady odkazovat na části zachycené regulárním výrazem.

V našem příkladu je náhrada:

<li><em>$4</em> (age $3) in $5 ($2)</li>\n

kde $n, se odkazuje na část řetězce zabalenou v kulatých závorkách, kde n je pořadí (počítáno dle pořadí levé závorky). Zápis \n zajišťuje zalomení řádku.

Výsledkem tak je:

<li><em>Janet Gaynor</em> (age 22) in Seventh Heaven, Street Angel and Sunrise: A Song of Two Humans (1928)</li>

Poznámky

Pokud budete pracovat s CSV, kde je oddělovačem středník, vyměňte v příkladech čárku za středník.

Pokud v CSV za čárkou či středníkem není mezera (jako v našem příkladu), pak ji z regulárního výrazu taky odstraňte.

Pokud se do regulárních výrazů chcete ponořit více, koukněte na kompletní shrnutí syntaxe regulárních výrazů.

Převod CSV na vlastní HTML/XML on-linePokud potřebujete provést transformace nad velkým CSV, není optimální ho kopírovat do Regexru. Doporučuji použít například bezplatný Notepad++, kde funguje přesně stejný regulární výraz a řetězec náhrady. Stačí vybrat volbu Search mode: Regular expression.

Související

Nenech si to pro sebe...

Pokud tě článek zaujal, sdílej ho s ostatními. Díky!

Tento web využívá cookies pro zajištění funkčnosti webu a získání statistik návštěvnosti webu. Více informací

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close