Rythme recommandé · semaine du 19 October 2026, période d'activités libresRythme recommandé · semaine du 19 octobre 2026, période d'activités libres
PrintedImprimé le·aylart.github.io/learn·
CC BY-NC 4.0
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.
Writing [0-9][0-9][0-9][0-9] works, and you have done it. Nobody wants to
keep doing it. Braces say how many times to repeat the element
in front of them:
{n} → exactly n times;
{n,} → at least n times;
{n,m} → between n and m times, both included.
In this notation, n and m stand for actual numbers: for “exactly 3 times”
you write {3}. A few examples:
ExerciseExercice 2 · words of five characters or moremots de 5 caractères ou plusintermediateintermédiairenot startedà fairesolvedréussikeep tryingà retravailler
Find the words of five "word" characters or more. "Word" characters are the unaccented letters, the digits and the underscore (_).
Trouvez les mots de 5 caractères « de mot » ou plus. Les caractères « de mot » sont les lettres non accentuées, les chiffres et le trait de soulignement (_).
Test textTexte de test
The cat eats good fresh bread every morning. I enjoy watching the little birds in the garden during the soirée. A word4 and code5.
Le chat mange du bon pain frais tous les matins. J'adore observer les petits oiseaux dans le jardin pendant l'été. Un mot4, un texte2 et code5.
Écrire [0-9][0-9][0-9][0-9] fonctionne, et vous l’avez fait. Personne n’a
envie de continuer. Les accolades disent combien de fois répéter
l’élément qui précède :
{n} → exactement n fois ;
{n,} → au moins n fois ;
{n,m} → entre n et m fois, bornes comprises.
Dans cette notation, n et m sont à remplacer par des nombres concrets :
pour « exactement 3 fois », on écrit {3}. Quelques exemples :
ExerciseExercice 2 · words of five characters or moremots de 5 caractères ou plusintermediateintermédiairenot startedà fairesolvedréussikeep tryingà retravailler
Find the words of five "word" characters or more. "Word" characters are the unaccented letters, the digits and the underscore (_).
Trouvez les mots de 5 caractères « de mot » ou plus. Les caractères « de mot » sont les lettres non accentuées, les chiffres et le trait de soulignement (_).
Test textTexte de test
The cat eats good fresh bread every morning. I enjoy watching the little birds in the garden during the soirée. A word4 and code5.
Le chat mange du bon pain frais tous les matins. J'adore observer les petits oiseaux dans le jardin pendant l'été. Un mot4, un texte2 et code5.
The most frequent repetitions have a symbol of their own:
Symbol
Equivalent
Meaning
*
{0,}
0 or more
+
{1,}
1 or more
?
{0,1}
0 or 1 (optional)
Examples:
colou?r → “color” or “colour”: the “u” is optional;
\d+ → one or more digits;
\s* → zero or more whitespace characters.
The ? deserves particular attention: it is the one that describes a
variation, and a spelling variation is exactly what a language professional
spends time looking for. A doubled letter or not, an optional accent, a plural
“s”, a British spelling against an American one.
ExerciseExercice 3 · British and American spellingsorthographes britannique et américainebasicbasiquenot startedà fairesolvedréussikeep tryingà retravailler
Find "color" and "colour" (the American and British spellings) in one expression.
Trouvez « color » et « colour » (orthographes américaine et britannique) en une seule expression.
Test textTexte de test
The color of the flag is red. The colour of the sky is blue. I prefer colorful pictures over colourful ones. The colony and the column are different.
The color of the flag is red. The colour of the sky is blue. I prefer colorful pictures over colourful ones. The colony and the column are different.
ExerciseExercice 4 · a word and its common misspellingun mot et sa faute courantebasicbasiquenot startedà fairesolvedréussikeep tryingà retravailler
You want to find every occurrence of the word "address" in a text, whether it is spelled correctly (two d's) or with the common mistake "adress" (one d). Write one expression that finds both forms, but not the variants with three d's or more.
Vous voulez trouver toutes les occurrences du mot « adresse » dans un texte, qu'il soit bien orthographié (deux s) ou écrit avec la faute courante « adrese » (un seul s). Écrivez une seule expression qui trouve les deux formes, mais pas les variantes à 3 s ou plus.
Test textTexte de test
Here is my full address. I have a temporary adress. The postal address and the email adress are different. Beware of the adddress with three d's.
Voici mon adresse complète. J'ai une adrese temporaire. L'adresse postale et l'adrese courriel sont différentes. Attention à l'adresssse avec 4 s.
Find the runs of 2 whitespace characters or more (useful for cleaning up formatting).
Trouvez les séquences de 2 blancs ou plus (utile pour nettoyer la mise en forme).
Test textTexte de test
Here is a text with multiple spaces. But not here. One only here too.
Voici un texte avec des espaces multiples. Mais pas ici. Un seul ici aussi.
Expected matches:Correspondances attendues :␣␣␣␣␣␣␣␣␣␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues :␣␣␣␣␣␣␣␣␣␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
//gmu
ExerciseExercice 8 · the start of http and https URLsdébuts d'URL http et httpsbasicbasiquenot startedà fairesolvedréussikeep tryingà retravailler
Find the URL openings "http://" and "https://" (not the other protocols).
Trouvez les débuts d'URL « http:// » et « https:// » (pas les autres protocoles).
Test textTexte de test
Visit http://example.com or https://secure.com for more. The ftp:// protocol is not included. Nor file://local nor mailto:test@test.com.
Visitez http://example.com ou https://secure.com pour plus d'infos. Le protocole ftp:// n'est pas inclus. Ni file://local ni mailto:test@test.com.
Les cas de répétition les plus fréquents ont leur symbole dédié :
Symbole
Équivalent
Signification
*
{0,}
0 ou plus
+
{1,}
1 ou plus
?
{0,1}
0 ou 1 (optionnel)
Exemples :
colou?r → « color » ou « colour » : le « u » est optionnel ;
\d+ → un ou plusieurs chiffres ;
\s* → zéro ou plusieurs blancs.
Le ? mérite une attention particulière : c’est lui qui décrit une variation,
et une variation orthographique est exactement ce qu’un langagier passe son
temps à chercher. Une lettre doublée ou non, un accent facultatif, un
« s » de pluriel, une graphie britannique et une américaine.
ExerciseExercice 3 · British and American spellingsorthographes britannique et américainebasicbasiquenot startedà fairesolvedréussikeep tryingà retravailler
Find "color" and "colour" (the American and British spellings) in one expression.
Trouvez « color » et « colour » (orthographes américaine et britannique) en une seule expression.
Test textTexte de test
The color of the flag is red. The colour of the sky is blue. I prefer colorful pictures over colourful ones. The colony and the column are different.
The color of the flag is red. The colour of the sky is blue. I prefer colorful pictures over colourful ones. The colony and the column are different.
ExerciseExercice 4 · a word and its common misspellingun mot et sa faute courantebasicbasiquenot startedà fairesolvedréussikeep tryingà retravailler
You want to find every occurrence of the word "address" in a text, whether it is spelled correctly (two d's) or with the common mistake "adress" (one d). Write one expression that finds both forms, but not the variants with three d's or more.
Vous voulez trouver toutes les occurrences du mot « adresse » dans un texte, qu'il soit bien orthographié (deux s) ou écrit avec la faute courante « adrese » (un seul s). Écrivez une seule expression qui trouve les deux formes, mais pas les variantes à 3 s ou plus.
Test textTexte de test
Here is my full address. I have a temporary adress. The postal address and the email adress are different. Beware of the adddress with three d's.
Voici mon adresse complète. J'ai une adrese temporaire. L'adresse postale et l'adrese courriel sont différentes. Attention à l'adresssse avec 4 s.
Find the runs of 2 whitespace characters or more (useful for cleaning up formatting).
Trouvez les séquences de 2 blancs ou plus (utile pour nettoyer la mise en forme).
Test textTexte de test
Here is a text with multiple spaces. But not here. One only here too.
Voici un texte avec des espaces multiples. Mais pas ici. Un seul ici aussi.
Expected matches:Correspondances attendues :␣␣␣␣␣␣␣␣␣␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
Expected matches:Correspondances attendues :␣␣␣␣␣␣␣␣␣␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
//gmu
ExerciseExercice 8 · the start of http and https URLsdébuts d'URL http et httpsbasicbasiquenot startedà fairesolvedréussikeep tryingà retravailler
Find the URL openings "http://" and "https://" (not the other protocols).
Trouvez les débuts d'URL « http:// » et « https:// » (pas les autres protocoles).
Test textTexte de test
Visit http://example.com or https://secure.com for more. The ftp:// protocol is not included. Nor file://local nor mailto:test@test.com.
Visitez http://example.com ou https://secure.com pour plus d'infos. Le protocole ftp:// n'est pas inclus. Ni file://local ni mailto:test@test.com.
A quantifier applies to the element in front of it: a character, a class… or a
group. Parentheses create that group, and give the quantifier something
bigger to count:
/(ha)+/ → “ha”, “haha”, “hahaha”…;
/(anti)?virus/ → “virus” or “antivirus”;
/(\d{3}-){2}/ → “three digits and a hyphen”, twice over.
The second example is the most useful in practice. Making one character
optional with ? is common; making a whole portion of the pattern optional, a
prefix, a decimal part, an area code, takes a group.
ExerciseExercice 10 · words with the re or ré prefixmots avec préfixe re ou réintermediateintermédiairenot startedà fairesolvedréussikeep tryingà retravailler
Find the words starting with "re" or "ré". The test text stays French: the prefix takes an accent in one spelling and not in the other, which is the point of the exercise.
Trouvez les mots qui commencent par « re » ou « ré ».
Test textTexte de test
Je réécris ce texte, je le rererelis plusieurs fois. Il faut le réorganiser, le relire et y remédier, mais pas prendre, corriger, rattraper, arrêter ni créer.
Je réécris ce texte, je le rererelis plusieurs fois. Il faut le réorganiser, le relire et y remédier, mais pas prendre, corriger, rattraper, arrêter ni créer.
ExerciseExercice 11 · phone numbers with a groupnuméros de téléphone avec un groupeintermediateintermédiairenot startedà fairesolvedréussikeep tryingà retravailler
Find the numbers in XXX-XXX-XXXX format using a repeated group instead of writing the same thing twice.
Trouvez les numéros au format XXX-XXX-XXXX en utilisant un groupe répété au lieu d'écrire deux fois la même chose.
Test textTexte de test
Call 514-123-4567 or 438-987-6543. My fax is 555-0000. Code: 123-45. Date: 2024-01-15.
Appelez le 514-123-4567 ou le 438-987-6543. Mon fax est 555-0000. Code: 123-45. Date: 2024-01-15.
Un quantificateur porte sur l’élément qui le précède : un caractère, une
classe… ou un groupe. Les parenthèses créent ce groupe, et donnent au
quantificateur quelque chose de plus gros à compter :
/(ha)+/ → « ha », « haha », « hahaha »… ;
/(anti)?virus/ → « virus » ou « antivirus » ;
/(\d{3}-){2}/ → deux fois de suite « trois chiffres et un tiret ».
Le deuxième exemple est le plus utile en pratique. Rendre un caractère
optionnel avec ? est courant ; rendre optionnelle une portion entière du
motif, un préfixe, une partie décimale, un indicatif régional, demande un
groupe.
ExerciseExercice 10 · words with the re or ré prefixmots avec préfixe re ou réintermediateintermédiairenot startedà fairesolvedréussikeep tryingà retravailler
Find the words starting with "re" or "ré". The test text stays French: the prefix takes an accent in one spelling and not in the other, which is the point of the exercise.
Trouvez les mots qui commencent par « re » ou « ré ».
Test textTexte de test
Je réécris ce texte, je le rererelis plusieurs fois. Il faut le réorganiser, le relire et y remédier, mais pas prendre, corriger, rattraper, arrêter ni créer.
Je réécris ce texte, je le rererelis plusieurs fois. Il faut le réorganiser, le relire et y remédier, mais pas prendre, corriger, rattraper, arrêter ni créer.
ExerciseExercice 11 · phone numbers with a groupnuméros de téléphone avec un groupeintermediateintermédiairenot startedà fairesolvedréussikeep tryingà retravailler
Find the numbers in XXX-XXX-XXXX format using a repeated group instead of writing the same thing twice.
Trouvez les numéros au format XXX-XXX-XXXX en utilisant un groupe répété au lieu d'écrire deux fois la même chose.
Test textTexte de test
Call 514-123-4567 or 438-987-6543. My fax is 555-0000. Code: 123-45. Date: 2024-01-15.
Appelez le 514-123-4567 ou le 438-987-6543. Mon fax est 555-0000. Code: 123-45. Date: 2024-01-15.
The vertical bar (|) is the “or” of regular expressions. It separates
several possibilities, and the first one that matches at that point in
the text is the one kept. MDN, the reference this module leans on, calls it a
disjunction, which is the word to search for there:
/cat|dog/ → “cat” or “dog”;
/Monday|Tuesday|Wednesday/ → any of the three.
It is the last of the three basic ways of assembling a pattern. An expression
puts elements one after another, it repeats them, and it offers alternatives;
everything else is a combination of those.
How far the bar reaches
The trap is its reach. Without parentheses, | separates everything on its
left from everything on its right, out to the edges of the expression.
/^cat|dog$/ therefore does not mean “cat or dog, alone on their line”: it
means “cat at the start of a line, or dog at the end of one”. For the intended
sense you need a group: /^(cat|dog)$/.
La barre verticale (|) est le « ou » des expressions rationnelles. Elle
sépare plusieurs possibilités, et c’est la première qui correspond à cet
endroit du texte qui est retenue. MDN, la référence sur laquelle s’appuie ce
module, la nomme disjunction, et c’est ce mot anglais qu’il faut y
chercher :
/chat|chien/ → « chat » ou « chien » ;
/lundi|mardi|mercredi/ → l’un des trois.
C’est le dernier des trois assemblages de base. Une expression met des
éléments à la suite, elle les répète, et elle offre des possibilités ; tout
le reste en est une combinaison.
La portée de la barre
Le piège est la portée. Sans parenthèses, | sépare tout ce qui est à sa
gauche de tout ce qui est à sa droite, jusqu’aux bords de l’expression.
/^chat|chien$/ ne signifie donc pas « chat ou chien, seuls sur leur
ligne » : il signifie « chat en début de ligne, ou chien en fin de ligne ».
Pour le sens attendu, il faut un groupe : /^(chat|chien)$/.
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.
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 guillemetsintermediateintermédiairenot startedà fairesolvedréussikeep 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␣»«␣au␣revoir␣»␣ 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èsesadvancedavancénot startedà fairesolvedréussikeep 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)(au␣revoir)␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide
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.
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 guillemetsintermediateintermédiairenot startedà fairesolvedréussikeep 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␣»«␣au␣revoir␣»␣ 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èsesadvancedavancénot startedà fairesolvedréussikeep 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)(au␣revoir)␣ space · ⇥ tab · ⏎ line break · ◆ empty match␣ espace · ⇥ tabulation · ⏎ retour à la ligne · ◆ correspondance vide