Help sur une expression régulière

WRInaute impliqué
J'ai besoin de faire des extractions dans des chaines de caractères.
Mon problème vient du fait que dans ma chaine de caractères, se trouve plusieurs la même chaine de caractères, je m'explique:

Code:
eregi ("aa(.*)cc" , "aabbcc - aaXXcc" , $Resultat);
echo $Resultat[1];

Le résultat sera sans équivoque :

bbcc - aaXX

Je souhaiterais en l'occurence que le résultat soit : bb,

c'est a dire ne faire l'extraction qu'entre les premiers délimiteurs rencontrés en allant de gaiuche à droite et jusqu'au délimiteur le plus proche à droite...

Quelles sont les artifices à mettre en oeuvre?

Merci par avance pour votre aide ;-)
 
WRInaute accro
une solution consisterait à modifier le masque comme ceci
Code:
"aa([a]*)cc"
de cette façon, il ne pourra pas englober d'autres a
 
WRInaute discret
Code:
preg_match("|aa(.*)cc|Ui", "aabbcc - aaXXcc", $Resultat);
echo $Resultat[1];

Voilà :)


Edit : j'ai oublié de préciser quelques trucs.
* preg_match ne va rechercher qu'une solution au maximum
* l'option "i" sert à rendre la casse insensible
* l'option "U" sert à gérer la <<gourmandise>> de la regex (à activer ou à désactiver suivant les cas, donc à tester)
 
Discussions similaires
Haut