Bonjour,

J'ai un texte avec des balises de formatage spécial qui devrait être transformée en xhtml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Mon texte en %g*gras*% et un une taille de %s=18pt*18pt*%.
Un texte en %i*italique*% et un en %ig*gras et itatlique*%.
Voici un %l=http://www.debian.org/*lien vers debian*%
J'ai donc fait un expression rationnelle qui me sort toutes ces balises et leur contenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
preg_match_all("/%[a-z]+(=.*)?\*.*\*%/U", $text, $result)
Cette expression fonctionne très bien, sauf dans le cas de balise imbriquée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Un texte en %c=30pt*%i*de 30pt et italique*%*%
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Un texte en %c=30pt* %i*de 30pt et italique*% *%
Ce que j'ai pensé faire, c'est d'abord prendre tous les couples de balises intérieures et répéter ça jusqu'aux balises extérieures avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
while(preg_match_all("/%[a-z]+(=.*)?\*.*\*%/U", $text, $result))
{
    /* Code */
}
Mais ce code va me trouver :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
%c=30pt* %i*de 30pt et italique*%
Alors que j'aimerais trouver :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
%i*de 30pt et italique*%
et ensuite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
%c=30pt*<span style="font-style: italic;">de 30pt et italique</span> *%
Merci de votre aide.