par
@rthur » 08 mai 2017, 17:19
Bonjour,
Il existe des opérateurs pour les regex justement pour modifier ce comportement, c'est ce qu'on appelle un comportement greedy ou lazy
- Greedy = gourmand, c'est à dire qu'il va essayer de prendre le maximum de texte qui correspond au pattern, c'est le comportement par défaut.
- Ungreedy ou Lazy = paresseux , c'est à dire qu'il va prendre le moins de texte possible (ce que tu cherches à faire)
Pour passer une capture de texte en lazy, il suffit de mettre un point d'interrogation après le quantifieur, soit par exemple .+?
C'est possible aussi de le faire de façon globale pour ta regex en ajoutant un flag U (à la fin de ta regex après le slash)
Bonjour,
Il existe des opérateurs pour les regex justement pour modifier ce comportement, c'est ce qu'on appelle un comportement greedy ou lazy
- Greedy = gourmand, c'est à dire qu'il va essayer de prendre le maximum de texte qui correspond au pattern, c'est le comportement par défaut.
- Ungreedy ou Lazy = paresseux , c'est à dire qu'il va prendre le moins de texte possible (ce que tu cherches à faire)
Pour passer une capture de texte en lazy, il suffit de mettre un point d'interrogation après le quantifieur, soit par exemple .+?
C'est possible aussi de le faire de façon globale pour ta regex en ajoutant un flag U (à la fin de ta regex après le slash)