Ranges and negationPlages et négation

Ranges of characters

Listing twenty-six letters one by one would be absurd. Inside a class, the hyphen defines a range, a continuous run of characters:

  • /[a-z]/ → any lowercase letter from a to z;
  • /[A-Z]/ → any uppercase letter;
  • /[0-9]/ → any digit;
  • /[a-zA-Z0-9]/ → a letter or a digit.

Several ranges fit inside the same brackets, and mix with individual characters: [a-zA-Z0-9_-] accepts letters, digits, underscore and hyphen.

ExerciseExercice 6 · every lettertoutes les lettres basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find every unaccented letter (lowercase and uppercase) in the text. The test text is French, and the result is the point: accented letters such as "é" and "û" are not covered by [a-zA-Z].
Trouvez toutes les lettres non accentuées (minuscules et majuscules) du texte. Observez le résultat : les lettres accentuées comme « é » ou « û » ne sont pas couvertes par [a-zA-Z].
Test textTexte de test
Bonjour123 monde! Les cafés coûtent 5$ ici. @test #hashtag _underscore
Bonjour123 monde! Les cafés coûtent 5$ ici. @test #hashtag _underscore
Expected matches:Correspondances attendues : B o n j o u r m o n + 39 more+ 39 autres
Expected matches:Correspondances attendues : B o n j o u r m o n + 39 more+ 39 autres
//gmu
ExerciseExercice 7 · short rangesplages courtes basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find a letter between a and c, followed by a digit between 1 and 3, bounds included.
Trouvez une lettre entre a et c, suivie d'un chiffre entre 1 et 3, bornes incluses.
Test textTexte de test
a1 b2 c3 d4 e5 f6 a4 d1 z9 A1 B2
a1 b2 c3 d4 e5 f6 a4 d1 z9 A1 B2
Expected matches:Correspondances attendues : a1 b2 c3
Expected matches:Correspondances attendues : a1 b2 c3
//gmu
ExerciseExercice 8 · a phone number with hyphensnuméro de téléphone avec tirets basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find the North American phone numbers written with hyphens (XXX-XXX-XXXX).
Trouvez les numéros de téléphone au format nord-américain avec tirets (XXX-XXX-XXXX).
Test textTexte de test
Call me at 514-555-1234 or write to P.O. Box 123-45 before 2024-12-31. My code is 99-8877. Invalid numbers: 51-555-1234 or 514-55-1234.
Appelez-moi au 514-555-1234 ou écrivez au C.P. 123-45 avant le 2024-12-31. Mon code est 99-8877. Numéro invalide: 51-555-1234 ou 514-55-1234.
Expected matches:Correspondances attendues : 514-555-1234
Expected matches:Correspondances attendues : 514-555-1234
//gmu
ExerciseExercice 9 · a phone number with hyphens or dotsnuméro de téléphone avec tirets ou points basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find the North American phone numbers whether the separators are hyphens or dots (XXX-XXX-XXXX or XXX.XXX.XXXX).
Trouvez les numéros de téléphone au format nord-américain, que les séparateurs soient des tirets ou des points (XXX-XXX-XXXX ou XXX.XXX.XXXX).
Test textTexte de test
Contact: 514-555-1234 or 438.555.6789. Date: 2024.01.15. Code: 12-34-56.
Contact : 514-555-1234 ou 438.555.6789. Date : 2024.01.15. Code : 12-34-56.
Expected matches:Correspondances attendues : 514-555-1234 438.555.6789
Expected matches:Correspondances attendues : 514-555-1234 438.555.6789
//gmu

Negation: [^…]

A caret in first position inside a class inverts the selection: the class then matches any character EXCEPT those listed.

  • /[^aeiou]/ → any character other than a lowercase vowel;
  • /[^0-9]/ → any character that is not a digit.

Negation is mostly how you describe what you cannot describe otherwise: “anything but a closing quote”, “anything but an angle bracket”, which is the basis of every pattern for tags tagbalise markupbalisage A marker that delimits and identifies an element in a markup document, usually working as a pair: an opening tag and a closing tag around the content they label.Marqueur qui délimite et identifie un élément dans un document balisé, fonctionnant généralement par paire : une balise ouvrante et une balise fermante autour du contenu qu'elles désignent. .

ExerciseExercice 10 · special characterscaractères spéciaux intermediateintermédiaire not startedà faire solvedréussi keep tryingà retravailler
Find every character that is neither an unaccented letter, nor a digit, nor a space. The test text is French, and the accented letters ("ç", "è") come out with the punctuation: [a-zA-Z] does not cover them.
Trouvez tous les caractères qui ne sont ni des lettres non accentuées, ni des chiffres, ni des espaces. Remarquez que les lettres accentuées (« ç », « è ») ressortent aussi : [a-zA-Z] ne les couvre pas.
Test textTexte de test
Hello! Comment ça va? Très bien, merci. Prix: 25$ et 30€. Email: test@mail.com
Hello! Comment ça va? Très bien, merci. Prix: 25$ et 30€. Email: test@mail.com
Expected matches:Correspondances attendues : ! ç ? è , . : $ . + 3 more+ 3 autres ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues : ! ç ? è , . : $ . + 3 more+ 3 autres ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
//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-30

Plages de caractères

Lister les vingt-six lettres une par une serait absurde. Dans une classe, le tiret définit une plage, une séquence continue de caractères :

  • /[a-z]/ → toute lettre minuscule de a à z ;
  • /[A-Z]/ → toute lettre majuscule ;
  • /[0-9]/ → tout chiffre ;
  • /[a-zA-Z0-9]/ → lettre ou chiffre.

Plusieurs plages tiennent dans les mêmes crochets, et se mélangent avec des caractères isolés : [a-zA-Z0-9_-] accepte lettres, chiffres, trait de soulignement et trait d’union.

ExerciseExercice 6 · every lettertoutes les lettres basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find every unaccented letter (lowercase and uppercase) in the text. The test text is French, and the result is the point: accented letters such as "é" and "û" are not covered by [a-zA-Z].
Trouvez toutes les lettres non accentuées (minuscules et majuscules) du texte. Observez le résultat : les lettres accentuées comme « é » ou « û » ne sont pas couvertes par [a-zA-Z].
Test textTexte de test
Bonjour123 monde! Les cafés coûtent 5$ ici. @test #hashtag _underscore
Bonjour123 monde! Les cafés coûtent 5$ ici. @test #hashtag _underscore
Expected matches:Correspondances attendues : B o n j o u r m o n + 39 more+ 39 autres
Expected matches:Correspondances attendues : B o n j o u r m o n + 39 more+ 39 autres
//gmu
ExerciseExercice 7 · short rangesplages courtes basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find a letter between a and c, followed by a digit between 1 and 3, bounds included.
Trouvez une lettre entre a et c, suivie d'un chiffre entre 1 et 3, bornes incluses.
Test textTexte de test
a1 b2 c3 d4 e5 f6 a4 d1 z9 A1 B2
a1 b2 c3 d4 e5 f6 a4 d1 z9 A1 B2
Expected matches:Correspondances attendues : a1 b2 c3
Expected matches:Correspondances attendues : a1 b2 c3
//gmu
ExerciseExercice 8 · a phone number with hyphensnuméro de téléphone avec tirets basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find the North American phone numbers written with hyphens (XXX-XXX-XXXX).
Trouvez les numéros de téléphone au format nord-américain avec tirets (XXX-XXX-XXXX).
Test textTexte de test
Call me at 514-555-1234 or write to P.O. Box 123-45 before 2024-12-31. My code is 99-8877. Invalid numbers: 51-555-1234 or 514-55-1234.
Appelez-moi au 514-555-1234 ou écrivez au C.P. 123-45 avant le 2024-12-31. Mon code est 99-8877. Numéro invalide: 51-555-1234 ou 514-55-1234.
Expected matches:Correspondances attendues : 514-555-1234
Expected matches:Correspondances attendues : 514-555-1234
//gmu
ExerciseExercice 9 · a phone number with hyphens or dotsnuméro de téléphone avec tirets ou points basicbasique not startedà faire solvedréussi keep tryingà retravailler
Find the North American phone numbers whether the separators are hyphens or dots (XXX-XXX-XXXX or XXX.XXX.XXXX).
Trouvez les numéros de téléphone au format nord-américain, que les séparateurs soient des tirets ou des points (XXX-XXX-XXXX ou XXX.XXX.XXXX).
Test textTexte de test
Contact: 514-555-1234 or 438.555.6789. Date: 2024.01.15. Code: 12-34-56.
Contact : 514-555-1234 ou 438.555.6789. Date : 2024.01.15. Code : 12-34-56.
Expected matches:Correspondances attendues : 514-555-1234 438.555.6789
Expected matches:Correspondances attendues : 514-555-1234 438.555.6789
//gmu

La négation : [^…]

L’accent circonflexe en première position d’une classe inverse la sélection : la classe correspond alors à tout caractère SAUF ceux qui sont listés.

  • /[^aeiou]/ → tout caractère sauf une voyelle minuscule ;
  • /[^0-9]/ → tout caractère qui n’est pas un chiffre.

La négation sert surtout à décrire ce qu’on ne sait pas décrire autrement : « tout sauf un guillemet fermant », « tout sauf un chevron », qui sont la base des motifs de balises tagbalise markupbalisage A marker that delimits and identifies an element in a markup document, usually working as a pair: an opening tag and a closing tag around the content they label.Marqueur qui délimite et identifie un élément dans un document balisé, fonctionnant généralement par paire : une balise ouvrante et une balise fermante autour du contenu qu'elles désignent. .

ExerciseExercice 10 · special characterscaractères spéciaux intermediateintermédiaire not startedà faire solvedréussi keep tryingà retravailler
Find every character that is neither an unaccented letter, nor a digit, nor a space. The test text is French, and the accented letters ("ç", "è") come out with the punctuation: [a-zA-Z] does not cover them.
Trouvez tous les caractères qui ne sont ni des lettres non accentuées, ni des chiffres, ni des espaces. Remarquez que les lettres accentuées (« ç », « è ») ressortent aussi : [a-zA-Z] ne les couvre pas.
Test textTexte de test
Hello! Comment ça va? Très bien, merci. Prix: 25$ et 30€. Email: test@mail.com
Hello! Comment ça va? Très bien, merci. Prix: 25$ et 30€. Email: test@mail.com
Expected matches:Correspondances attendues : ! ç ? è , . : $ . + 3 more+ 3 autres ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues : ! ç ? è , . : $ . + 3 more+ 3 autres ␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
//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.