Les expressions régulières sont des chaînes de caractères, qui décrivent, selon une syntaxe précise, un ensemble de chaînes de caractères possibles. Elles sont extrêmement utiles pour extraire des informations de textes comme du code, des fichiers journaux, des feuilles de calcul ou des documents.
Les expressions régulières sont applicables sur divers langages comme Python / PHP / Javascript / Java / C#. Elles peuvent prendre le nom de Regex qui est la concaténation de Regular Expression soit Expression régulière en anglais !
Pour en savoir plus sur les Regex, l’agence digitale IT-Room répond à 5 questions !
1 / Quand utiliser les expressions régulières ?
Les expressions régulières peuvent être utilisées pour effectuer des recherches dans une chaîne de caractères.
Les recherches via des expressions régulières sont déjà mises à disposition sur certaines applications. Par exemple :
🔹 Un filtre de recherche sur un site spécifique
🔹 Un filtre de recherche sur un éditeur de texte
2 / Pourquoi utiliser les expressions régulières ?
On peut se demander pourquoi utiliser les expressions régulières lorsque des fonctions plus simples sont déjà mises à disposition dans certains langages. Par exemple :
🔹 str_contains en PHP
🔹 strpos en PHP
Les deux fonctions précédentes permettent de vérifier si une chaîne de caractères bien précise est présente dans le texte.
👌 Sur ce point, les regex permettent plus de flexibilité, car il est possible de définir un “ensemble” de valeur, et pas seulement une unique valeur.
Un exemple concret pour mieux comprendre
On souhaite retrouver toutes les occurrences ayant pour motif : 01-{Mois}-2022. On suppose que “{Mois}” est remplacé par un nombre entre 01 et 12 dans le texte.
🔹 Avec les fonctions str_contains et strpos, ce sera plus difficile à mettre en place, car ce que nous recherchons n’est pas une unique valeur, mais un ensemble de valeur.
🔹 En passant par les expressions régulières, via un seul motif, il sera possible de récupérer toutes les occurrences.
3 / Comment écrire les expressions régulières ?
L’expression régulière suit un certain format pour son écriture : délimiteur + motif + délimiteur (+ flag)
Un exemple concret pour mieux comprendre
L’écriture suivante est une expression régulière valide : /regex/i
Ici, nous avons les éléments suivants : Délimiteur / + Motif regex + Délimiteur / + Flag i
🔹 Le délimiteur peut être n’importe quel caractère. Cependant, lors de l’utilisation de certaines fonctions sur certains langages, le délimiteur peut être fixé à l’avance et ne permet pas l’utilisation de n’importe quel caractère.
🔹 Le motif représente ce que nous recherchons. Pour son écriture, nous verrons ça dans le point 4 en utilisant un exemple afin de faciliter la compréhension.
🔹 Le flag permet d’ajouter des règles par rapport à notre recherche. Par exemple, le flag i permet de faire une recherche insensible à la casse (et indiquera que la valeur a été retrouvée, peu importe si “regex” a été écrit avec des majuscules ou non).
4 / Exemple d’une expression régulière : Vérification de l’existence d’une date
Nous voulons vérifier s’il existe une date au format YYYY-MM-DD / Exemple : 2022-03-25.
Nous allons vérifier uniquement le motif et non pas la cohérence de cette date.
Le motif que nous allons utiliser sera également valable avec ce type de date : 2022-13-32.
Avant de commencer à vouloir écrire le motif avec “l’alphabet” utilisé par les regex, nous devons déjà voir comment est défini le motif que l’on recherche.
Si on reprend la date 2022-03-25, on peut voir que cette date est découpée sur le format suivant :
2022-01-13
4 chiffres + – + 2 chiffres + – + 2 chiffres
Avant d’écrire le motif sous la forme d’une expression régulière, il faut connaître les éléments suivants :
🔹 Pour indiquer que nous recherchons tous les chiffres, nous pouvons écrire [0-9]
🔹 Si aucun quantificateur n’est passé, nous ne recherchons qu’une seule occurrence
🔹 Si nous recherchons plusieurs occurrences, il faudra utiliser : [0-9]{Nb Occurrence}
🔹 Le caractère – est un caractère spécial et nécessite donc d’être échappé (avec un \) si nous le recherchons.
En reprenant le découpage précédent, nous obtenons le résultat suivant :
4 chiffres + – + 2 chiffres + – + 2 chiffres
[0-9]{4} \– [0-9]{2} \– [0-9]{2}
5 /Quels sites pour tester les expressions régulières ?
Il est possible de tester les expressions régulières sur les sites : Regex101 / RegExr
Le site Regexone permet de découvrir la rédaction des expressions régulières.
📌 Nous espérons que ce sujet vous a intéressé, retrouvez tous nos autres articles et si vous souhaitez en savoir plus sur des sujets spécifiques en développement informatique Prestashop, Symfony, ainsi que sur notre activité d’agence digitale, n’hésitez pas à nous contacter !