Une **expressions régulière** ou **expressions rationnelles** est une chaîne de caractères qui décrit les différentes syntaxes acceptées 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ée. Une fois penché sur la question elles sont très utiles et ne sont pas aussi compliqué qu'il n'y paraît
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.
```regex
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.
<br>
```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._
<br>
```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.
<br>
```regex
m[abcdefghijklmnopqrstuvwxyz]ts
```
> Ici, l'expression accepte toutes les lettres de l'[alphabet latin](https://fr.wikipedia.org/wiki/Alphabet_latin)
Avec l'usage des intervalles notre intervalle donne donc
```regex
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](https://www.lucaswillems.com/fr/articles/25/tutoriel-pour-maitriser-les-expressions-regulieres).