Hledáte kvalitní a spolehlivý webhosting? Vyzkoušejte Český hosting.
Webhosting 1000 Kč/rok: 2GB, PHP 4 i 5, neom. subdomén a emailů, 10 databází

Převod BBCode tagů na HTML tagy

Zvláště v diskuzních fórech (bulletin boards) se můžeme setkat s tzv. bbcode tagy, tj. jakýmisi kvazi tagy, které jsou po odeslání příspěvku převedeny na HTML tagy a zajišťují správně formátování příspěvku.

Pro převedení bbcode tagů na HTML tagy můžeme použít regulární výraz a provést tak nahrazení všech tagů najednou. Ve většině diskuzních fór jsou možnosti použití tagů omezeny. V našem přikladu, budou převedeny tagy b, u, i, pre. Z regulárního výrazu níže je zřejmé, že jednotlivé tagy jsou ve výrazu oddělený znakem | – dle potřeby tedy můžete výraz snadno upravit.

  • RV \[(/?(b|u|i|pre))\]
  • Náhrada <$1>
Ukázkový nahrazovaný text
Toto je [b]tučný[/b] text, 
tento je [i]kurzívou[/i] 
a tento  [u]kurzívou[/u].
[pre]Kód[/pre]
Ukázkový výsledný text
Toto je <b>tučný</b> text, 
tento je <i>kurzívou</i> 
a tento  <u>kurzívou</u>.
<pre>Kód</pre>

Poznámky

  • Není-li uvedeno jinak, příklad je primárně určen pro prostředí .NET (a byl testován v programu Expresso), avšak protože se jedná o Perl-compatible regulární výraz, měl by fungovat i v Perlu, PHP a pravděpodobně i Javascriptu a všech programech, které využívají Perl-compatible regulární výrazy (např. PSPad, Homesite, Total Commander a mnoho dalších).
  • Formát zápisu zpětných referencí v uvedených příkladech (shodné s programem Expresso)
    • zpětná reference v rámci výrazu – \n, kde n je číslo subvýrazu
    • zpětná reference v náhradě – $n, kde n je číslo subvýrazu
  • Způsob zápisu (nejen zpětných referencí) se v různých prostředích může lišit – viz přehled vlastností regulárních výrazů v různých prostředích.
  • Pokud vám některý výraz plně nevyhovuje nebo nefunguje, přečtěte si relevantní články v sekci Jak na ně... nebo se zkuste zeptat v diskuzním fóru.