Les Regex
1 Qu’est-ce qu’une expression régulière ?
Une expression régulière (regex) est un langage permettant de décrire des motifs de texte.
Elles sont utilisées pour :
- rechercher du texte
- filtrer des données
- valider des formats
- remplacer du contenu
On les retrouve dans de nombreux outils :
- éditeurs de texte
- langages de programmation
- scripts de traitement de données
- moteurs de recherche avancés
Exemples d’utilisation :
| Objectif | Regex |
|---|---|
| trouver un nombre | \d+ |
| trouver un email simple | \w+@\w+\.\w+ |
lignes qui commencent par ## |
^## |
2 Principe
Une regex est une suite de caractères spéciaux et normaux décrivant un motif.
Exemple :
chat
Correspond simplement au mot chat.
3 Les ancres
Les ancres permettent de cibler la position dans la ligne.
| Regex | Signification |
|---|---|
^ |
début de ligne |
$ |
fin de ligne |
3.1 Exemples
^Bonjour
Correspond à :
Bonjour tout le monde
Bonjour Pierre
mais pas :
Je dis Bonjour
erreur$
Correspond à :
Fatal erreur
Une erreur
4 Les caractères spéciaux
4.1 Le point
.
Correspond à n’importe quel caractère.
Exemple :
c.t
Correspond à :
cat
cot
cut
5 Les répétitions
Les quantificateurs indiquent combien de fois un motif apparaît.
| Regex | Signification |
|---|---|
* |
0 ou plusieurs |
+ |
1 ou plusieurs |
? |
0 ou 1 |
5.1 Exemples
ab*
Correspond à :
a
ab
abb
abbb
ab+
Correspond à :
ab
abb
abbb
6 Classes de caractères
Les crochets permettent de définir un ensemble de caractères possibles.
[abc]
Correspond à :
a
b
c
6.1 Intervalles
[a-z]
lettre minuscule
[A-Z]
lettre majuscule
[0-9]
chiffre
6.2 Exemple
[aeiou]
Correspond à une voyelle.
7 Classes prédéfinies
Les regex proposent des raccourcis très utiles.
| Regex | Signification |
|---|---|
\d |
chiffre |
\w |
lettre ou chiffre |
\s |
espace |
\D |
non chiffre |
\W |
non mot |
\S |
non espace |
7.1 Exemple
\d\d\d\d
Correspond à :
2024
1999
1234
8 Groupes
Les parenthèses permettent de regrouper des motifs.
(abc)
Exemple :
(abc)+
Correspond à :
abc
abcabc
abcabcabc
9 Le OU logique
Le symbole | signifie ou.
chat|chien
Correspond à :
chat
chien
10 Négation
Dans une classe de caractères, ^ signifie tout sauf.
[^0-9]
Correspond à tout caractère qui n’est pas un chiffre.
11 Exemple pratique
Supprimer toutes les lignes qui ne commencent pas par ##.
Regex :
^(?!##).*
Explication :
| Partie | Signification |
|---|---|
^ |
début de ligne |
(?!##) |
ne commence pas par ## |
.* |
reste de la ligne |
Exemple :
## titre
ligne1
## chapitre
ligne2
Correspondance :
ligne1
ligne2
12 Outils pour tester les regex
Sites utiles :
Ces outils permettent de :
- tester une regex
- voir les correspondances
- obtenir une explication du motif
13 À retenir
Quelques regex très utiles :
14 Les 15 symboles regex indispensables
| Symbole | Signification | Exemple | Correspond à |
|---|---|---|---|
. |
n’importe quel caractère | c.t |
cat, cot |
^ |
début de ligne | ^Bonjour |
lignes commençant par Bonjour |
$ |
fin de ligne | erreur$ |
lignes finissant par erreur |
* |
0 ou plusieurs occurrences | ab* |
a, ab, abb |
+ |
1 ou plusieurs occurrences | ab+ |
ab, abb |
? |
0 ou 1 occurrence | colou?r |
color, colour |
[abc] |
un caractère parmi | [aeiou] |
voyelles |
[^abc] |
tout sauf | [^0-9] |
caractère non numérique |
[a-z] |
intervalle | [0-9] |
un chiffre |
\d |
chiffre | \d\d |
42, 99 |
\w |
caractère de mot | \w+ |
hello, abc123 |
\s |
espace | \s+ |
espaces, tabulations |
(...) |
groupe | (abc)+ |
abc, abcabc |
| |
ou logique | chat|chien |
chat ou chien |
{n} {n,m} |
répétition précise | \d{4} |
2024 |
14.1 Mémo rapide
| Catégorie | Symboles |
|---|---|
| Position | ^ $ |
| Quantité | * + ? {n} |
| Choix | [ ] [^ ] | |
| Classes | \d \w \s |
| Structure | ( ) |
| Joker | . |