Page 1 sur 1

Expression reguliéres

Posté : 27 mai 2010, 11:53
par Neohh56
Bonjour tout le monde ;)

Voila j'ai un probleme je souhaite remplacer du bbcode dans une chaine par l'equivalent html.

Pour cela j'utilise les expressions régulières mais j'ai un petit soucis en fait j'ai un texte :

bla bla bla bla [color=#cccccc]transmettre [/color]bla bla [color=#ffffff]tout [/color]au long de leur [color=#ff6600] bla bla [/color]sur le [color=#ff0000]terrain[/color].


et donc je souhaite remplacer par exemple [color=#cccccc]transmettre [/color] par <span color='#cccccc'> transmettre </span>

J'ai fait ce code :

[code]/* Je construis l'expression regulière*/
$exp_reg="\[color=#([0-9a-zA-Z]{1,6})\](.*)\[/color\]";

// Remplacement
$txt=eregi_replace($exp_reg,"<span color='#\\1'>\\2</span>",$txt);[/code]

Le soucis est que cela remplace bien le premier color mais cela met le </span> a la fin de tout le texte et donc ne remplace pas tout les autre color.

Voila en esperant avoir ete assez clair.

Merci de votre aide.

@++

ps:j'ai du désactiver le bbcode dans le message

Re: Expression reguliéres

Posté : 27 mai 2010, 13:38
par Aureusms
Je ne suis pas expert mais je crois qu'il faille protéger ton # au centre et tu as deux parathèses capturantes.

Code : Tout sélectionner

$exp_reg="\[color=#([0-9a-zA-Z]{1,6})\](.*)\[/color\]";

Re: Expression reguliéres

Posté : 27 mai 2010, 13:55
par Neohh56
J'ai tester mais c'est pareil :(

Re: Expression reguliéres

Posté : 27 mai 2010, 14:05
par stealth35