Quantificateurs

Contrôlez combien de fois un élément se répète — de « peut-être une fois » à « exactement trois » — avec ?, *, +, {n,m} et leurs formes gourmandes ou paresseuses.

Lire les règles : Quantificateurs dans le Guide →S'entraîner : Carrière des quantificateurs →

Ce que vous allez apprendre

Zéro ou plus Un ou plus Facultatif Répétition {n} Gourmand ou paresseux

Étapes · 13

  1. 01Combien ?Briefing
  2. 02Zéro ou plusChasse
  3. 03Un ou plusChasse
  4. 04FacultatifChasse
  5. 05Exactement nChasse
  6. 06n ou plusChasse
  7. 07Un intervalleChasse
  8. 08Répéter une classeChasse
  9. 09Assembler les piècesChasse
  10. 10Gourmand par défautChasse
  11. 11Le rendre paresseuxChasse
  12. 12Golf : nombres entiersChasse
  13. 13Quantificateurs maîtrisésBriefing

Quantificateurs regex : ?, *, + et {n,m}

Un quantificateur indique à une regex combien de fois l'élément qui le précède peut se répéter. Sans quantificateur, chaque lettre, point ou classe correspond exactement une fois. Avec un quantificateur, un seul élément peut s'étirer sur une suite de caractères, ou devenir facultatif.

Il y a quatre formes à connaître. ? veut dire zéro ou une fois : il rend un élément facultatif. * veut dire zéro fois ou plus, et + une fois ou plus. Les accolades donnent des nombres exacts : {3} vaut exactement trois, {2,} deux ou plus, et {1,3} entre un et trois. Un quantificateur s'applique à une lettre seule, à une classe comme [a-z] ou à un groupe entre parenthèses.

Par défaut, les quantificateurs sont gourmands : ils prennent autant de caractères que possible et n'en rendent que si la suite du motif en a besoin. Ajoutez un ? après un quantificateur, comme dans +? ou *?, et il devient paresseux : il en prend le moins possible. Dans une chasse, les quantificateurs permettent à un seul motif court d'attraper des mots de longueurs différentes tout en épargnant ceux qui sortent du compte.

Exemples

  1. /go+al/

    Attrapés

    • goal
    • gooooal

    Épargnés

    • gal
    • gaol

    + exige au moins un o, mais en accepte autant que vous voulez.

  2. /https?:/

    Attrapés

    • http:
    • https:

    Épargnés

    • htt:
    • ftp:

    ? rend le s facultatif : les deux préfixes passent.

  3. /lo{2,3}p/

    Attrapés

    • loop
    • looop

    Épargnés

    • lop
    • loooop

    Les accolades fixent une fourchette : deux ou trois o entre le l et le p, ni plus ni moins.

  4. /\d*\.\d+/

    Attrapés

    • .5
    • 3.14
    • 10.0

    Épargnés

    • 3.
    • 314

    * permet à la partie entière de manquer, tandis que + exige au moins un chiffre après le point.

Erreurs courantes

  • Croire qu'un quantificateur répète un mot entier. ha+ ne répète que le a (haaa) ; entourez la partie d'un groupe, (ha)+, pour répéter haha.
  • Laisser un `. * gourmand aller trop loin. Sur "a" and "b", le motif ".*" s'étend du premier guillemet au dernier ; utilisez ".*?" ou "[^"]*"` pour vous arrêter au plus proche.
  • Oublier que * accepte zéro occurrence. x* correspond à toutes les chaînes, même sans aucun x : utilisez + quand il faut au moins une occurrence.

Lire les règles : Quantificateurs dans le Guide →S'entraîner : Carrière des quantificateurs →

À lire aussi : Quantificateurs gourmands ou paresseux : pourquoi .* en avale trop →