Regex Ungreedy ?
Résolu
M1Abrams
-
M1Abrams -
M1Abrams -
1 réponse
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
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
M1Abrams
super explications merci, j'ai maintenant compris