Effectivement ca marche merci beaucoup ! 
Par la même occasions autre soucis..
Une fois quelques opérations faites, de mon texte en entrée il me reste ca :
<TABLE CLASS='tab_menu'>
<TR>
<TD>Présentation</TD>
<COURANT-176>
<TD>Oeuvres</TD>
</COURANT-176>
<TD>
<A CLASS='a_menu' HREF='{$\CHEMIN-PAGES$}{$\LIEN-PAGE-471$}'>Oeuvres</A>
</TD>
<COURANT-175>
<TD>Revue de presse</TD>
</COURANT-175>
<TD>
<A CLASS='a_menu' HREF='{$\CHEMIN-PAGES$}revue-de-presse.html'>Revue de presse</A>
</TD>
</TR>
</TABLE>
Je dois ensuite terminer en supprimant les "phrases" <COURANT-xxx>...</COURANT-xxx> donc dans mon exemple je veux supprimer :
- <COURANT-176>
<TD>Oeuvres</TD>
</COURANT-176>
et
- <COURANT-175>
<TD>Revue de presse</TD>
</COURANT-175>
J'utilise donc :
$texte = preg_replace("#<COURANT-[0-9]+>.*<\/COURANT-[0-9]+>$#is", "", $texte);
Le soucis c'est que .* signifiant TOUT les caractères en fait il me supprime :
"<COURANT-176>
<TD>Oeuvres</TD>
</COURANT-176>
<TD>
<A CLASS='a_menu' HREF='{$\CHEMIN-PAGES$}{$\LIEN-PAGE-471$}'>Oeuvres</A>
</TD>
<COURANT-175>
<TD>Revue de presse</TD>
</COURANT-175>"
J'ai compris que c'était parce-que
"<TD>
<A CLASS='a_menu' HREF='{$\CHEMIN-PAGES$}{$\LIEN-PAGE-471$}'>Oeuvres</A>
</TD>"
se trouve entre <COURANT-176> et /COURANT-175> mais ca me pose un soucis car je ne dois pas le supprimer.
Comment puis-je dire à ma regex que TOUT les caractères c'est tout SAUF "<COURANT.." ???
J'ai essayé en faisant ca :
$texte = preg_replace("#<COURANT-[0-9]+>[^COURANT .]*<\/COURANT-[0-9]+>$#is", "", $texte);
Mais ca ne fonctionne pas.Soi il ne me supprime rien soit tout... 
Merci de votre aide.
Partager