L’utilisation des expressions régulières (Regex) peut parfois s’avérer complexe.
Explorons les expressions régulières et leurs structures. Nous allons nous intéresser à ces schémas qui ressemblent à une suite de caractères codés. Nous décortiquerons la signification de chaque élément composant une expression régulière.
Après la lecture de cet article, vous serez en mesure de créer vos propres expressions régulières et de les utiliser selon vos besoins. Pour finir, nous présenterons une liste d’outils en ligne permettant de tester vos RegEx, ce qui vous permettra de les concevoir et de les vérifier efficacement.
Introduction
Les expressions régulières, ou RegEx, sont une séquence de caractères servant de modèle pour la recherche de caractères ou de chaînes de caractères.
Par exemple, pour savoir si une chaîne contient le mot « pomme », on peut utiliser l’expression régulière « /pomme » pour effectuer la recherche. Autre exemple, on pourrait employer « /[0-9] » pour vérifier la présence d’un chiffre entre 0 et 9 dans une chaîne donnée.
Les expressions régulières et leurs applications
Les expressions régulières sont largement utilisées dans diverses opérations web. La validation de formulaires web, les moteurs de recherche, les analyseurs lexicaux dans les environnements de développement, les éditeurs de texte et de documents sont autant d’exemples d’applications courantes des expressions régulières.
Nous avons tous employé « CTRL + F » pour rechercher un mot, une phrase ou une expression spécifique dans un document ou un code. Cette action simple constitue un exemple concret de l’utilisation des expressions régulières.
Avant d’aller plus loin, examinons une expression régulière très fréquemment employée.
Seriez-vous capable de deviner 🤔 à quoi sert la RegEx ci-dessous ?
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
Ne vous inquiétez pas si vous ne pouvez pas la déchiffrer. Je suis convaincu que vous y parviendrez à la fin de cet article.
Commençons par les bases de la RegEx.
Les éléments de base
Pour commencer, examinons les différents symboles de l’expression Regex ci-dessus.
^([a-zA-Z0-9_-.]+)@([a-zA-Z0-9_-.]+).([a-zA-Z]{2,5})$
Cette RegEx est composée d’une multitude de symboles, de caractères ou d’éléments de base. Découvrons leur signification :
Élément | Signification |
^ | Ce symbole indique le début d’une chaîne. |
(…) | Cela désigne un groupe où tous les caractères entre parenthèses sont capturés. |
[…] | Les crochets contiennent une liste de caractères parmi lesquels un seul peut correspondre. Par exemple, [abc] correspond à a ou b ou c. |
a-z | L’ensemble des lettres minuscules de a à z. Il est important de noter que la RegEx est sensible à la casse. |
A-Z | L’ensemble des lettres majuscules de A à Z. |
0-9 | Les chiffres de 0 à 9. |
_ | Cela correspondra au caractère _ . |
C’est le caractère d’échappement. | |
. | Cela correspond au caractère « . » littéralement. Ceci est utilisé car le symbole « . » en RegEx est un élément qui correspond à n’importe quel caractère. |
+ | Il s’agit d’un quantificateur. Il correspond à une ou plusieurs occurrences du caractère précédent. Par exemple, a+ correspond à une ou plusieurs occurrences du caractère a. |
– | Cela correspondra au caractère « -« . |
@ | Cela correspondra au caractère « @ ». |
{} | C’est un autre quantificateur. Il est utilisé pour indiquer le nombre d’occurrences d’un caractère. Par exemple, a{3} signifie exactement 3 a. |
$ | Cela indique la fin d’une chaîne. |
Analyse de l’expression Regex donnée
Maintenant, en nous basant sur cette connaissance des symboles, essayons de décoder l’expression régulière ci-dessus :
- ^([a-zA-Z0-9_-.]+) signifie que nous recherchons une chaîne commençant par au moins un caractère alphanumérique (majuscule ou minuscule), un trait de soulignement, un tiret ou un point. Par exemple, « user_name.01 » correspondrait à ce schéma. Il faut se rappeler qu’il n’est pas nécessaire d’inclure tous les symboles, un seul caractère de [a-zA-Z0-9_-.] suffit.
- Le caractère @ correspond à une seule occurrence de @. En reprenant l’exemple précédent, « user_name.01@… » fonctionnerait.
- ([a-zA-Z0-9_-.]+) est similaire au premier point. Cela signifie que nous recherchons une chaîne contenant au moins un caractère alphanumérique, un trait de soulignement, un tiret ou un point. Ainsi, « user_name.01@domain.com » fonctionnerait.
- Comme vous l’aurez peut-être deviné, nous nous dirigeons vers un format d’adresse e-mail. Ensuite, . correspond au simple caractère « . ». Si nous continuons l’exemple, « user_name.01@domain. » serait acceptable.
- ([a-zA-Z]{2,5})$ signifie que la chaîne doit se terminer par 2 à 5 lettres (majuscules ou minuscules). Si nous ajoutons « .com » à notre exemple, nous obtenons « user_name.01@domain.com » qui correspond au modèle commun d’une adresse e-mail.
En combinant tous ces éléments, nous remarquons que nous recherchons une chaîne d’identification d’adresse e-mail. Cette expression peut servir à valider une adresse e-mail. Si l’adresse test correspond à ce format, on peut la considérer comme valide.
PS – Il s’agit d’un modèle pour les adresses e-mail les plus courantes sur le web.
Types d’éléments
De nombreux éléments peuvent être combinés de différentes manières dans une expression Regex pour décrire une grande variété d’expressions. Nous allons examiner ci-dessous les différents types d’éléments utilisés dans les expressions régulières. De plus, nous verrons les symboles les plus courants dans chaque catégorie.
Éléments de base
Commençons par les éléments de base. Ces éléments sont utilisés dans la plupart des expressions régulières. Il est donc essentiel de bien les comprendre en premier lieu.
Élément | Signification |
\r | Cela correspond au caractère de retour chariot. |