2010-12-10 6 views
0

Je construis un forum de discussion personnalisé pour un site Web. (Le site Web a besoin d'un custom. :)) Ce que j'essaye de faire est d'utiliser des expressions régulières pour prendre un [b] et devenir en sortie. Puis aussi l'autre style [img] example.jpg [/ img] et la sortie < \ img src = "example.jpg">. Mais jusqu'à présent, tout ce que j'ai essayé ne semble pas fonctionner. Quelqu'un at-il des exemples de comment cela fonctionnerait?Convertir un BBCode en utilisant des expressions régulières

+0

Et je l'ai étiqueté correctement mais j'ai oublié de mentionner que j'utilise asp.net mvc2 – Dale

+0

S'il vous plaît nous montrer ce que vous avez fait jusqu'à présent. Le nous pouvons vous aider à produire une expression régulière de travail. –

Répondre

0

La brève solution en Perl est

s/\[b\]([^\[]*)\[\/b\]/<b>$1<\/b>/g; 
s/\[img\]([^\[]*)\[\/img\]/<img src="$1" \/>/g; 

Pour élaborer cette solution en php serait:

<? 
$text = 'enter your text here'; 
$text = preg_replace('/\[b\]([^\[]*)\[\/b\]/','<b>$1<\/b>',$text); 
$text = preg_replace('/\[img\]([^\[]*)\[\/img\]/','<img src="$1" \/>',$text); 
print "$text"; // print new text 
?> 

Pour être plus précis en Perl, vous pouvez utiliser:

$text = ' text [b]tucny[/b] je [b]u[/b]rcite [img]dobre.gif[/img] dalsi'; 
$text =~ s/\[b\]([^\[]*)\[\/b\]/<b>$1<\/b>/g; 
$text =~ s/\[img\]([^\[]*)\[\/img\]/<img src="$1" \/>/g; 
print $text; 

Jakub

+0

BTW le tag img que vous avez mentionné dans votre question n'est pas correct, je pense que vous ment au lieu de <\ img src = "example.jpg"> – gorn

+0

Oui, je l'ai fait. Et désolé pour le retard dans la réponse. Votre réponse a très bien fonctionné. – Dale

Questions connexes