2021-12-09 23:06:45 +01:00

3.0 KiB

Chapitre 5.2 - Expressions régulières

Definition

Une expressions régulière ou expressions rationnelles est une chaîne de caractères qui décrit les différentes syntaxe accepté dans une autre chaîne de caractères. Elles sont aussi appelé regex, qui est un mot valise provenant de l'anglais et formé de regular expression.

La syntaxe des Regex est particulière et peut parfois en effrayer certains, mais cette frayeure n'est pas fondé. Une fois pencher sur la question elles sont très utiles et ne sont pas aussi compliqué qu'il n'y paraît

Ce cours est en grande partie du site suivant : https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres

La syntaxe est la suivante

^[a-zA-Z-]+@[a-zA-Z-]+\.[a-zA-Z]{2,6}$

Cette expression régulière permet de représenter toutes les adresses mails contenues dans une chaîne de caractère.

Les expressions régulières utilisent des éléments que nous verrons ci-dessous.

mots|mats|mits

Avec cette expressions nous recherchons les mots mots, mats et mits. Toutefois une solutions plus simple et courte est à notre disposition, la voici.


```regex m[oai]ts ``` > Cette syntaxe permet de faire la même chose en incluant une **intervalle** de caractère(s) accepté(s). _Une intervalle, dans les expressions régulières, contiennent tous les caractères acceptés._
```regex m[^oai]ts ``` > À contrario, cette expression recherche tout les mots contenant un **m** suivi d'une lettre qui n'est ni **o**, ni **a**, ni **i**, suivi de **ts**. Comme vous l'avez peut-être remarqué, l'accent circonflexe (**^**) permet d'exclure de la recherche les caractères qui sont situé après lui.
```regex m[abcdefghijklmnopqrstuvwxyz]ts ``` > Ici, l'expression accepte toutes les lettres de l'[alphabet latin](https://fr.wikipedia.org/wiki/Alphabet_latin)
Vous confenez bien qu'il n'est pas pratique d'utiliser cette syntaxe. C'est pourquoi des équivalents existe pour les différentes possibilités.
Intervalle Equivalent Traduction
[a-z] [abcdefghijklmnopqrstuvwxyz] Lettres minuscules de a à z
[A-Z] [ABCDEFGHIJKLMNOPQRSTUVWXYZ] Lettres majuscules de A à Z
[0-9] [0123456789] Chiffres de 0 à 9
[a-z0-9] [abcdefghijklmnopqrstuvwxyz0123456789] Lettres minuscules de a à z et chiifre de 0 à 9

Comme dans la dernière ligne, il est possible de cumuler des ensembles pour en faire un seul et simplifier d'autant plus l'expression

Avec l'usage des intervalles notre intervalle donne donc

m[a-z]ts
Voici un petit avant goût des expressions régulières si vous souhaitez poursuivre afin de les utiliser pleinement. Rendez-vous sur le site de Lucas Willems.