Page 1 sur 1

Expression régulière pour Bbcode

Posté : 26 mars 2009, 14:16
par bucheron
Hello,

sur un projet que je réalise, j'autorise les membres à pouvoir éditer des fiches via du bbcode.
je souhaiterais réaliser un filtre au niveau des retours à la ligne dont voici les caractéristiques.

après avoir appliquer mon filtre bbcode je souhaite supprimer les <br/> qui se trouvent après les balises title qui elles sont gérées via le css.

Exemple
Code initiale

Code : Tout sélectionner

test [h1] Titre[/h1] suite texte [h2]Titre 2[/h2] suite ....
code avant d'appliquer ma fonction

Code : Tout sélectionner

test <h1> Titre</h1> suite texte <h2>Titre 2</h2> suite ....
et après le passage du texte dans ma fonction

Code : Tout sélectionner

test <br/> <h1>Titre</h1> suite texte<br/> <h2>Titre 2</h2> suite <br/> .... ....
j'ai essayé quelque chose mais vu que je ne suis pas un expert en regexp je demande votre aide:
function convertBR($text) {
	$res = str_replace("\n", "<br/>", $text);
	$res = preg_replace("/(<h1>|<h2>)(<br/>|\\n)*([a-zA-Z<\.)*/", "\\1\n\\3", $res);
	 return $res;
}
d'avance merci

Posté : 30 mars 2009, 11:44
par bucheron
ça n'inspire personne ?

Posté : 31 mars 2009, 09:49
par julian
Dans ta regexp, tu n'as pas besoin d'échapper l'antislash du retour à la ligne car \n est un caractère spécial. Je suis pas sûr que ça règle le problème mais essaie quand même :
"/(<h1>|<h2>)(<br/>|\n)*([a-zA-Z<\.)*/"