par
Victor BRITO » 20 oct. 2009, 18:39
Bienvenue dans l'univers des captures gloutonnes !
Autrement dit, pour éviter que la capture de ton expression rationnelle n'englobe plusieurs balises entre crochets, de deux choses l'une :
- soit tu ajoutes un ? après le quantifiant, comme suit
preg_match ('#[id](.+?)[end id]#', $text, $matches);
- soit tu ajoutes le masque U (U majuscule, pour ungreedy, qui veut dire « non glouton » en anglais) après le délimiteur de fin d'expression rationnelle, comme suit
preg_match ('#[id](.+)[end id]#U', $text, $matches);
Si tu veux tester par toi-même, je te conseille la
page de test d'expressions rationnelles de Lumadis.

Bienvenue dans l'univers des captures gloutonnes ! ;)
Autrement dit, pour éviter que la capture de ton expression rationnelle n'englobe plusieurs balises entre crochets, de deux choses l'une :
[list=1][*]soit tu ajoutes un ? après le quantifiant, comme suit [php]preg_match ('#[id](.+?)[end id]#', $text, $matches);[/php]
[*]soit tu ajoutes le masque U (U majuscule, pour [i]ungreedy[/i], qui veut dire « non glouton » en anglais) après le délimiteur de fin d'expression rationnelle, comme suit [php]preg_match ('#[id](.+)[end id]#U', $text, $matches);[/php][/list]
Si tu veux tester par toi-même, je te conseille la [url=http://lumadis.be/regex/test_regex.php]page de test d'expressions rationnelles de Lumadis[/url]. ;)