Pourquoi ma regex ne marche pas ???
gaara_40
Messages postés
102
Statut
Membre
-
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
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:
- Pourquoi ma regex ne marche pas ???
- Regex buddy - Télécharger - Édition & Programmation
- Regex mot de passe ✓ - Forum Framework .NET
- Regex Ungreedy ? ✓ - Forum Programmation
- Regex tout sauf - Forum Java
- Scp recursif, regex ✓ - Forum Linux / Unix
3 réponses
PS : Pas la peine de me dire qu'il faut rajouter un antislash devant les guillemets. Déjà essayé et ça marche pas.
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:
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.
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.
$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 :(