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 →
Fait suite à Les bases de la chasse
Ce que vous allez apprendre
Étapes · 13
- 01Une case, plusieurs choixBriefing
- 02Ensembles de caractèresChasse
- 03Plages : a-zChasse
- 04Plages : 0-9Chasse
- 05Classes négativesChasse
- 06Raccourci : \dChasse
- 07Le trio de raccourcisExemple
- 08Raccourcis négatifsChasse
- 09Les métacaractères deviennent littérauxChasse
- 10Plages combinéesChasse
- 11Plage de majusculesChasse
- 12Golf : au plus courtChasse
- 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
Attrapés
- gray
- grey
- greyhound
Épargnés
- groan
- grid
La classe propose deux choix pour la troisième lettre, et rien d'autre.
Attrapés
- 1star
- 5stars
- my3star
Épargnés
- 6star
- 0star
- star
Une plage couvre tous les chiffres de 1 à 5 dans une seule case.
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.
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 motcat: il attrape donc aussiteaetact. - É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
\wcouvre les lettres accentuées. En JavaScript, il ne désigne que les lettres ASCII, les chiffres et le tiret bas : le é decafé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 →