Bonjour à tous ! Pour créer un mon propre éditeur de texte, j'utilise les expressions régulières pour transformer mes balises bbcode. J'ai un léger problème ^^ Lorsque que j'écris une expression régulière comme ceci: [code][b](.*)[/b][/code] Qui remplacera les balises b par les balises strong, en rajoutant le contenu au milieu. Alors si une personne écris: [code]En gras[/ b][/code] Tout va bien. [code] En gras [/code] Mais si elle met: [code]En gras[/ b]Encore en gras[/ b][/code] Alors là sa ne fait pas comme je veux. [code] En gras****Encore en gras** [/code] Une idée ? =D Merci d'avance. (J'ai rajouté des espaces dans mes balises pour qu'elles ne soient pas convertis sur mon post ici)
Il faut ajouter l'option U (Upgreedy) à ton expression. Ceci va premettre de s'arreter le plus tot possible et prendre le 1er ** qu'il va rencontrer, et non le dernier. :) exemple: [code]$texte = preg_replace('#[b](.*)[/b]#Ui', ' $1', $texte);[/code]
Oui merci =) j'ai aussi finis par trouver ma réponse en regardant un tuto sur le bbcode sur internet, sa à été plus simple qu'en tapant mon problème ou je trouvais rien ;