Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1472 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Expression rationnelles et ordre de parcours

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expression rationnelles et ordre de parcours

n°1812781
patastronc​h
Posté le 16-11-2008 à 19:08:16  profilanswer
 

Bonjour,
 
je chercher à controler l'ordre dans lequel un preg_replace gourmand va effectuer ses changements.
 
Prenons l'exemple suivant :
 
Texte à filtrer :
<coucou><salut></coucou></salut></coucou><coucou>flop</coucou>
 
 
Ce qu'on cherche à obtenir c'est :
<coucou2><salut></coucou></salut></coucou2><coucou2>flop</coucou2>
 
C'est à dire que l'on veut remplacer les motifs de type <coucou>(.*)</coucou> par <coucou2>$1</coucou2> avec un preg_replace dans l'ordre de parenthésage.
C'est a dire que le premier motif remplacé sera :
<coucou><salut></coucou></salut></coucou><coucou>flop</coucou>
ce qui donnera la chaine :
<coucou2><salut></coucou></salut></coucou2><coucou>flop</coucou>
puis le second motif remplacé sera :
<coucou2><salut></coucou></salut></coucou2><coucou>flop</coucou>
Pour donner enfin la chaine voulu :
<coucou2><salut></coucou></salut></coucou2><coucou2>flop</coucou2>
 
Je ne sais pas si j'ai été clair, mais j'espère qe quelqu'un connait la méthode pour effectuer les remplacements dans cet ordre la ( c'est le même ordre qu'on suivrait si on parcourait les ensembles parenthésés en donnant la priorité aux ensembles parenthésés les plus large).
 

mood
Publicité
Posté le 16-11-2008 à 19:08:16  profilanswer
 

n°1812873
sielfried
Posté le 17-11-2008 à 09:30:10  profilanswer
 

[:pingouino]  
 
Tu pourrais déjà expliquer pourquoi ton premier </coucou> devrait être complètement ignoré ? [:pingouino]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1813452
patastronc​h
Posté le 18-11-2008 à 15:00:21  profilanswer
 

Si vous voulez ...  bien que je pense pas que ce soit utile :)
 
En fait je fais un parseur pour un langage de type BB.
J'aimerais rajouter une balise de [NORENDER] [/NORENDER] qui quelque soit le contenu entre les 2 balises n'est jamais interpété.
 
L'ennuie c'est si un utilisateur tape : blabla[/NORENDER]blabla
 
Ca va générer le texte suivant :  
 
[NORENDER]blabla[/NORENDER]blabla[/NORENDER]  
 
 et voila comment on en arrive à mon problème :)


Message édité par patastronch le 18-11-2008 à 15:01:22
n°1813468
sielfried
Posté le 18-11-2008 à 15:13:46  profilanswer
 

Je doute qu'utiliser des expressions régulières pour réaliser un parseur soit la solution idéale...
 
En outre, en PHP il y a déjà une extension qui fait bien son boulot :
http://fr.php.net/manual/fr/intro.bbcode.php
 
Pour revenir à ton dernier exemple, la solution consiste à mon sens simplement à encoder d'une manière ou d'une autre ce qu'a entré l'utilisateur, pour ne pas le confondre avec une balise. Puis t'utilises le procédé inverse quand tu veux retrouver le texte original. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1815116
patastronc​h
Posté le 21-11-2008 à 18:11:43  profilanswer
 

Ce n'est pas du BBcode. J'ai pris l'exemple du BBCode pour qu'il soit rapidement parlant.  
Par conrte ton lien semble pouvoir traiter n'importe quel langage a balise qu'on définirait et pas seulement le bbcode. Je vais jeter un oeil :) Mais je pense que le probleme du no-render se posera toujours :s
 
Merci en tous cas.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Expression rationnelles et ordre de parcours

 

Sujets relatifs
Tester un aliasmatch / expression rationnelle[expression reguliere] besoin d'aide
[Access] - l'expression ne fait pas partie de la fonction d'agregat[JS] clean word et expression régulière
Problème d'ordre de superposition une image affichée avec onmouseover[JS]Parcours de tableau
Expression régulière particulièreAide sur une expression régulière pour preg_replace()
Besoin d'aide pour une expression régulièreOrdre descendant sans id
Plus de sujets relatifs à : Expression rationnelles et ordre de parcours


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR