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.
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ů)([^,]+),
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"([^"]+)",
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ě uvozovekTextové 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>
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.
Jak se zbavit (not set) v Session Source a Session Medium?
Chcete doměřit efekt vaší offline reklamy, ze které vedete lidi na váš web? Jde to…
Tenhle článek jsem měl rozepsaný fakt dlouho, ale je stále aktuální… Trápí mě, že opakovaně…
Poslední dobou jsem se setkal s pár majiteli malých firem, kteří mají web a snaží…
Občas se mě někdo ptá, co používám pro tvorbu screencastů a online videí. Které nástroje…
V rámci 5 videí najdete 7 krátkých video tipů pro zefektivnění práce s Google Analytics…