Classes de caractères

Maîtrisez les classes de caractères : construisez des ensembles de caractères autorisés, couvrez des plages entières, retournez un ensemble avec la négation et appuyez-vous sur les raccourcis à connaître par cœur.

Lire les règles : Classes de caractères dans le Guide →S'entraîner : Châteaux de caractères →

Ce que vous allez apprendre

Ensembles de caractères Plages Négation Raccourcis Plages hexadécimales

Étapes · 13

  1. 01Une case, plusieurs choixBriefing
  2. 02Ensembles de caractèresChasse
  3. 03Plages : a-zChasse
  4. 04Plages : 0-9Chasse
  5. 05Classes négativesChasse
  6. 06Raccourci : \dChasse
  7. 07Le trio de raccourcisExemple
  8. 08Raccourcis négatifsChasse
  9. 09Les métacaractères deviennent littérauxChasse
  10. 10Plages combinéesChasse
  11. 11Plage de majusculesChasse
  12. 12Golf : au plus courtChasse
  13. 13Cases maîtriséesBriefing

Classes de caractères, plages et raccourcis en regex

Une classe de caractères permet à une case du motif d'accepter plusieurs caractères au choix. Écrivez les options entre crochets : la classe correspond à n'importe lequel d'entre eux, mais à un seul. gr[ae]y accepte les deux orthographes anglaises de « gris », car la case après gr peut être un a ou un e. Les classes servent à dire « une voyelle ici » ou « un chiffre là » sans écrire tous les mots possibles.

Les classes deviennent plus utiles avec les plages et la négation. Un tiret entre deux caractères couvre tout ce qui se trouve entre eux : [1-5] est un chiffre de un à cinq et [A-Za-z] une lettre sans accent. Un accent circonflexe juste après le crochet ouvrant inverse l'ensemble : [^,] est n'importe quel caractère sauf une virgule. Quel que soit son contenu, une classe consomme toujours exactement un caractère.

Certains ensembles reviennent si souvent que les regex leur donnent des raccourcis. \d est un chiffre, \w un caractère de mot (lettre, chiffre ou tiret bas) et \s un caractère d'espacement. Leurs majuscules \D, \W et \S veulent dire l'inverse. Pensez à une classe dès qu'une chasse dit « l'un de ceux-ci » ou « tout sauf ceux-ci » pour une seule position.

Exemples

  1. /gr[ae]y/

    Attrapés

    • gray
    • grey
    • greyhound

    Épargnés

    • groan
    • grid

    La classe propose deux choix pour la troisième lettre, et rien d'autre.

  2. /[1-5]star/

    Attrapés

    • 1star
    • 5stars
    • my3star

    Épargnés

    • 6star
    • 0star
    • star

    Une plage couvre tous les chiffres de 1 à 5 dans une seule case.

  3. /z[^z]/

    Attrapés

    • zap
    • lazy
    • ozone

    Épargnés

    • buzz
    • fizz
    • quiz

    Une classe niée exige quand même un caractère : un z tout à la fin ne correspond donc pas, pas plus qu'un z suivi d'un autre z.

  4. /\d\s\d/

    Attrapés

    • 1 2
    • room 4 5

    Épargnés

    • 12
    • 1-2

    Les raccourcis se combinent comme des lettres : un chiffre, une espace, puis un autre chiffre.

Erreurs courantes

  • Lire une classe comme un mot. [cat] correspond à un seul c, a ou t, pas au mot cat : il attrape donc aussi tea et act.
  • Écrire des plages qui mélangent les casses. [a-Z] est une erreur en JavaScript, et [A-z] laisse passer en douce des symboles comme [, ^ et _ ; utilisez [A-Za-z].
  • Croire que \w couvre les lettres accentuées. En JavaScript, il ne désigne que les lettres ASCII, les chiffres et le tiret bas : le é de café n'est pas un caractère de mot.

Lire les règles : Classes de caractères dans le Guide →S'entraîner : Châteaux de caractères →

À lire aussi : Les classes de caractères en regex : \d, \w, \s, [a-z] et leurs pièges →