Bonsoir,
Les regexp c'est beau, sauf quand on s'arrache les cheveux dessus.
Mon problème est assez simple : dans un contenu html, j'aimerais "neutraliser" tous les symboles dollars présents entre des balises pre, mais pas les autres.
La raison est que tous les autres dollars servent à générer des formules compilées en latex, et les $ présents entre les balise pre sont des bouts de code php ou jquery dans mes différents tutos.
Voici un exemple :
<p>des dollars ici $33$ et ici $$45$$ et dans un pre <pre> voila $ bla bla $ bla $ et $$ </pre> et encore dehors $86$</p>
Le filtre latex va remplacer par exemple $33$ par une image <img .../>
Le seul moyen que j'ai trouvé de "neutraliser" ces dollars entre balises pre, c'est de les remplacer par une autre chaine, le temps de compiler les formules latex, puis revenir en arrière.
Donc cela donnerait un truc du style :
<p>des dollars ici $33$ et ici $$45$$ et dans un pre <pre> voila YOUPI bla bla YOUPI bla YOUPI et YOUPIYOUPI </pre> et encore dehors $86$</p>
puis compilation latex des images :
<p>des dollars ici <img.../> et ici <img.../> et dans un pre <pre> voila YOUPI bla bla YOUPI bla YOUPI et YOUPIYOUPI </pre> et encore dehors <img.../></p>
et on revient en arrière, on vire les YOUPI pour des dollars :
<p>des dollars ici <img.../> et ici <img.../> et dans un pre <pre> voila $ bla bla $ bla $ et $$</pre> et encore dehors <img.../></p>
Sauf que, non seulement cela fait beaucoup de scan complets, mais en plus je n'arrive pas à trouver une unique regexp pour remplacer simplement tous les $ entre pre d'un coup ( je m'en tire avec plusieurs recherches successives ).
C'est loin d'être joli et optimal.
Auriez-vous une idée pour simplifier cela ?
Partager