Expression régulière
Posté : 28 oct. 2014, 12:22
Bonjour,
J'ai besoin d'un regard neuf sur une expression régulière...
Le but est de récupérer ce qui est entre les balises "[g]...[/g]".
Par exemple, pour "Bonjour je m'appelle [g]Boris[/g], je suis marié à [g]Evgenia[/g] et notre fille s'appelle [g]Olga[/g]", je dois récupérer "Boris", "Evgenia" et "Olga". En gros, c'est le même principe que dans l'éditeur de ce forum !
J'ai donc la commande suivante :
preg_match_all("/\[g\](.*)\[\/g\]/",$str,$matches,PREG_SET_ORDER);
Le problème est que mon tableau $matches contient un seul élément (et non pas les 3 qu'il devrait contenir), qui commence au premier "[g]" et se termine au dernier "[/g]".
Concrètement, $matches contient "Boris[/g], je suis marié à [g]Evgenia[/g] et notre fille s'appelle [g]Olga".
Comment écrire la pattern pour que chaque élément soit trouvé ?
J'ai besoin d'un regard neuf sur une expression régulière...
Le but est de récupérer ce qui est entre les balises "[g]...[/g]".
Par exemple, pour "Bonjour je m'appelle [g]Boris[/g], je suis marié à [g]Evgenia[/g] et notre fille s'appelle [g]Olga[/g]", je dois récupérer "Boris", "Evgenia" et "Olga". En gros, c'est le même principe que dans l'éditeur de ce forum !
J'ai donc la commande suivante :
preg_match_all("/\[g\](.*)\[\/g\]/",$str,$matches,PREG_SET_ORDER);
Le problème est que mon tableau $matches contient un seul élément (et non pas les 3 qu'il devrait contenir), qui commence au premier "[g]" et se termine au dernier "[/g]".
Concrètement, $matches contient "Boris[/g], je suis marié à [g]Evgenia[/g] et notre fille s'appelle [g]Olga".
Comment écrire la pattern pour que chaque élément soit trouvé ?