Pourquoi ma regex ne marche pas ???

gaara_40 Messages postés 102 Statut Membre -  
gaara_40 Messages postés 102 Statut Membre -
Salut, ça fait une plombe que je cherche et je n'ai pas réussi à trouver une réponse.
Je voudrais une regex qui quand y'a écrit par exemple :
[color="green"] mon texte [/color]
ça me le remplace par ça : mon texte (en vert).

Vous allez me dire que je suis vraiment un abrutit mais je n'arrive pas à faire digérer les guillemets à ma regex.

Voilà mon code PHP :
$donnees = preg_replace('#\[color="(silver|grey|maroon|lime|navy|aqua|teal|fuchsia|red|green|blue|yellow|purple|olive)"\](.+)\[/color/]#isU', '<span style="color:$1">$2</span>', $donnees);

(je sais pas trop ce qui se passe avec mon code, mon message ne s'affiche pas tout à fait comme je le veux mais j'espère que mon code reste lisible, les truc qui se colore en bleu comme les liens, vous les remplacez par [slash color])

C'est ces guillemets (en gras) qui me pourrissent la vie.
S'il vous plait, aidez-moi. Je commence vraiment à désespérer :(

Merci d'avance pour vos réponses
A voir également:

3 réponses

gaara_40 Messages postés 102 Statut Membre 3
 
PS : Pas la peine de me dire qu'il faut rajouter un antislash devant les guillemets. Déjà essayé et ça marche pas.
0
La Viande Messages postés 50 Statut Membre
 
Salut,

Utilise les balises code pour que l'on puisse voir ton code sans qu'il soit tronqué.
Le premier soucis que je vois, c'est ce genre de truc:
(silver|grey....

Ca, ça signifie "silve" suivi de r ou g, suivi de rey ...
Si tu veux silver ou grey, alors il faut que tu aies: (silver)|(grey)
Pour la suite il faut que je voie l'expression non tronquée, donc avec les balises code.
0
gaara_40 Messages postés 102 Statut Membre 3
 
$donnees = preg_replace('#\[color="(silver|grey|maroon|lime|navy|aqua|teal|fuchsia|red|green|blue|yellow|purple|olive)"\](.+)\/color/#isU', '<span style="color:$1">$2</span>', $donnees);


J'ai pas très bien compris ce que tu voulais dire par utiliser les balises de code, j'espère que le code est plus lisible comme ça.

Par contre, j'ai essayé comme tu m'as dis (silver)|(grey) ... et ça ne marche toujours pas :(
0