Greedy or lazyGourmand ou non gourmand

Applied to “<b>important</b> and <b>useful</b>”, the pattern /<b>.*<\/b>/ finds one giant match, running from the first opening tag to the last closing one. Quantifiers quantifierquantificateur regular expressionsexpressions rationnelles A regular-expression operator stating how many times the preceding element may repeat ({n}, {n,m}, *, +, ?); greedy by default, matching as much as possible, and made lazy with a following ?Opérateur d'expression rationnelle indiquant combien de fois l'élément précédent peut se répéter ({n}, {n,m}, *, +, ?); gourmand par défaut (il capture le plus possible), il devient non gourmand avec un ? supplémentaire. are greedy: they take as many characters as they can, backing off only far enough for the end of the pattern to still match.

To take as few as possible, you add ? after the quantifier:

  • * → 0 or more, as many as possible; *? → 0 or more, as few as possible;
  • + → 1 or more, as many as possible; +? → 1 or more, as few as possible.
The same text twice. Above, the greedy pattern highlights the whole string as one match; below, the lazy pattern highlights two separate matches, one per bold element
Figure 1. The same pattern, greedy above and lazy below, on the same text. The question mark is the only difference between them.
ExerciseExercice 13 · text between guillemetstexte entre guillemets intermediateintermédiaire not startedà faire solvedréussi keep tryingà retravailler
Find each passage between French quotation marks, the marks included, one match per quotation.
Trouvez chaque passage entre guillemets français, guillemets compris, en une correspondance par citation.
Test textTexte de test
She said « hello » then « goodbye » to everyone. The straight quotes "hi" do not count.
Elle a dit « bonjour » puis « au revoir » à tout le monde. Les guillemets anglais "hello" ne comptent pas.
Expected matches:Correspondances attendues : «bonjour» «aurevoir» ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues : «hello» «goodbye» ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
//gmu
ExerciseExercice 14 · between parenthesesentre parenthèses advancedavancé not startedà faire solvedréussi keep tryingà retravailler
Find the text between parentheses, the parentheses included.
Trouvez le texte entre parenthèses (parenthèses comprises).
Test textTexte de test
He says (hello) then (goodbye) before leaving. Note: [bracket] and {brace} do not count.
Il dit (bonjour) puis (au revoir) avant de partir. Note: [crochet] et {accolade} ne comptent pas.
Expected matches:Correspondances attendues : (bonjour) (aurevoir) ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues : (hello) (goodbye)
//gmu
Written alternately in EN and FR, translation partly generated in both directions. Rédigé en alternance en EN et en FR, traduction en partie générée dans les deux sens. Updated 2026-08-27

Appliqué à « <b>important</b> et <b>utile</b> », le motif /<b>.*<\/b>/ trouve une seule correspondance géante, qui va de la première balise ouvrante à la dernière balise fermante. Les quantificateurs quantifierquantificateur regular expressionsexpressions rationnelles A regular-expression operator stating how many times the preceding element may repeat ({n}, {n,m}, *, +, ?); greedy by default, matching as much as possible, and made lazy with a following ?Opérateur d'expression rationnelle indiquant combien de fois l'élément précédent peut se répéter ({n}, {n,m}, *, +, ?); gourmand par défaut (il capture le plus possible), il devient non gourmand avec un ? supplémentaire. sont gourmands (greedy) : ils prennent le plus de caractères possible, quitte à revenir en arrière juste assez pour que la fin du motif corresponde encore.

Pour capturer le moins possible, on ajoute ? après le quantificateur :

  • * → 0 ou plus, le plus possible ; *? → 0 ou plus, le moins possible ;
  • + → 1 ou plus, le plus possible ; +? → 1 ou plus, le moins possible.
Le même texte deux fois. En haut, le motif gourmand met en évidence toute la chaîne en une seule correspondance ; en bas, le motif non gourmand en met deux en évidence, une par élément en gras
Figure 1. Le même motif, gourmand en haut et non gourmand en bas, sur le même texte. Le point d'interrogation est leur seule différence.
ExerciseExercice 13 · text between guillemetstexte entre guillemets intermediateintermédiaire not startedà faire solvedréussi keep tryingà retravailler
Find each passage between French quotation marks, the marks included, one match per quotation.
Trouvez chaque passage entre guillemets français, guillemets compris, en une correspondance par citation.
Test textTexte de test
She said « hello » then « goodbye » to everyone. The straight quotes "hi" do not count.
Elle a dit « bonjour » puis « au revoir » à tout le monde. Les guillemets anglais "hello" ne comptent pas.
Expected matches:Correspondances attendues : «bonjour» «aurevoir» ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues : «hello» «goodbye» ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
//gmu
ExerciseExercice 14 · between parenthesesentre parenthèses advancedavancé not startedà faire solvedréussi keep tryingà retravailler
Find the text between parentheses, the parentheses included.
Trouvez le texte entre parenthèses (parenthèses comprises).
Test textTexte de test
He says (hello) then (goodbye) before leaving. Note: [bracket] and {brace} do not count.
Il dit (bonjour) puis (au revoir) avant de partir. Note: [crochet] et {accolade} ne comptent pas.
Expected matches:Correspondances attendues : (bonjour) (aurevoir) ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues : (hello) (goodbye)
//gmu
Written alternately in EN and FR, translation partly generated in both directions. Rédigé en alternance en EN et en FR, traduction en partie générée dans les deux sens. Mise à jour 2026-08-30

Sources

Sources

Spotted an error? Une erreur ?

Language, content, a broken link: tell me what you saw and I will fix it. Langue, contenu, lien brisé : dites-moi ce que vous avez vu et je corrige.

Sending opens your mail app with the report addressed to me. L'envoi ouvre votre application de courriel avec le signalement déjà adressé à moi.