Regex Ungreedy ?

Résolu
M1Abrams -  
 M1Abrams -
Bonjour,

est-ce que quelqu'un pourrait m'expliquer simplement ce que fait Ungreedy ? J'ai lu plusieurs article sur google et ce n'est toujours pas clair pour moi

merci d'avance

1 réponse

Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

La distinction greedy (vorace) / ungreedy (sobre ?) vient du fait qu'une expression rationnelle peut être vérifiée par plusieurs sous-chaîne de caractères.

Par exemple, si j'exécute l'expression rationnelle suivante
/s+[^s]+s+/
(c'est-à-dire, les occurrences qui commencent par un certain nombre de lettres « s », puis contiennent n'importe quoi d'autre, puis contiennent à nouveau un certain nombre de « s ».

Si on l'applique au « mot » suivant :
« abcdsssssfghijklsssssssmnopq »

En mode greedy (qui est le mode par défaut), le résultat sera
« sssssfghijklsssssss ». Il est allé aussi loin qu'il a pu.

En mode ungreedy, au contraire, une fois qu'il a trouvé une sous-chaîne qui va bien, il ne regardera pas s'il peut l'étendre :
« sssssfghijklss »

Voili voilou...

Xavier
1
M1Abrams
 
super explications merci, j'ai maintenant compris
0