Výměna pozic slov pomocí regulárních výrazů

Nedávno jsme se na technické podpoře Mergada setkali se zajímavým dotazem. A sice: jak to udělat, aby se dvě slova v jednom elementu mezi sebou prohodila?

Představte si vstupní feed, který uvádí výrobce, resp. autora knihy, v následujícím formátu Kundera, Milan. To se ale do názvu, kam chcete jméno autora dostat, moc nehodí. Mnohem lepší by to bylo hezky česky – tedy Milan Kundera.  Jenže – jak slova přehodit a jak odstranit čárku mezi slovy? Pro na první pohled obtížný problém jsou tu reguláry. Jestliže už jste od podzimu zapomněli, co že se za tímto strohým pojmem skrývá, doporučujeme pro osvěžení PDF s reguláry. Ale zpátky k problému.  1) Začneme s odstraněním čárky, a to pomocí pravidla Najít a nahradit.  2) Prohození dvou slov oddělených mezerou provedeme pomocí stejného pravidla a regulárního výrazu:  najít: (\w+) (\w+) a nahradit za: \2 \1  Výsledek pak bude vypadat následovně:  Pokud chcete vepsat jméno autora do názvu produktu, můžete využít pravidlo typu Přepsat a pomocí elementů název produktu upravit:   V případě delších jmen, která obsahují i jiné znaky než písmena (např. James B. Jones nebo Hana Nováková-Dvořáková je nutné regulární výraz upravit. Pokud si nebudete vědět rady, klidně se ozvěte na podporu Mergada nebo napište do fóra! 

Kateřina Šmajzrová

Katka se panu Mergadovi stará o české texty, hlídá aby jim bylo rozumět a aby vás bavily. Taky točí videa a webináře pro ty, kdo jsou spíš na obrázky než na texty. Mimo to ráda chodí po horách a čte.