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

  1. Reivax962 Messages postés 3742 Statut Membre 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
    1. M1Abrams
       
      super explications merci, j'ai maintenant compris
      0