Aide sur les expressions régulières

Une expression régulière (regex) est une chaine de caractères basée sur une syntaxe précise, permettant de faire des recherches précises sur du texte.
Cette chaine de caractères s'appelle un motif (pattern en anglais), construit à partir de caractères qui ont un sens précis.

Exemples d'expressions régulières

1. Le point

Le caractère point dans une expression régulière est l'équivalent du caractère joker, il désigne tout type de caractère,
ainsi la regex Poinc.ré utilisée sur la chaine Poincaré renverra bien Poincaré.

2. Les caractères "+" et "*"

Ces caractères induisent la notion de répétition du caractère qui le précède :
le caractère "*" permet d'indiquer zéro ou plusieurs répétitions du caractère qui le précède, ainsi ab* correspond à "a", ou "ab", ou "abb", ou "abbb", ou "abbbb", etc.

Le caractère "+" permet d'indiquer une ou plusieurs répétitions du caractère qui le précède, ainsi ab+ correspond à "ab", ou "abb", ou "abbb", ou "abbbb", etc.

3. Le caractère "?"

Le point d'interrogation indique que le caractère qui le précède peut apparaitre une fois ou pas du tout, ainsi ab? correspond à "a", ou "ab".

4. Les caractères "[" et "]"

Les crochets permettent de définir une classe de caractères autorisés.
Ainsi le motif [aeiou] sur le texte "ou" renverra bien "ou", idem pour le mot "aie" car ses lettres font bien partie de la classe de caractères autorisés.
Pour autoriser que les caractères alphabétiques on peut utiliser ce motif : [a-zA-Z].
Pour n'autoriser que les caractères numériques : [0-9].

5. Le caractère "^"

Ce caractère a 2 fonctions :
- il peut soit indiquer que le mot doit apparaitre en début de ligne,
exemple : ^Henri -> si "Henri" apparait en début de ligne alors la recherche utilisant ce regex donnera bien "Henri"

- il peut soit indiquer l'interdiction d'apparition d'un ou plusieurs caractères :
[^0-9] -> interdira à la chaine d'avoir un caractère numérique.

6. Le caractère "$"

Ce caractère permet d'indiquer que le mot recherché doit se trouver à la fin d'une ligne,
ainsi cette expression "ce soir$" sera valable pour un texte qui possède une chaine "ce soir" situé en fin de ligne.

7. Les caractères "{" et "}"

Ces caractères accolades permettent de quantifier la fréquence d'apparition d'un caractère,
ainsi le motif a{3} sera valable que pour la chaine "aaa" et pas "a", ni pour "aa".

8. Le caractère "|"

Ce caractère introduit la notion de "ou", il donne la possibilité d'un choix entre deux caractères ou deux types de regex, ainsi a|b donnera comme possibilité soit "a", soit "b".

9. Les caractères "(" et ")" pour chercher plusieurs mots sans obligation que tous les mots soient présents

Les parenthèses permettent de grouper plusieurs expressions régulières, elles sont souvent utilisées en combinaison avec le caractère "|",
ainsi si on veut rechercher plusieurs mots mais sans imposer la présence de tous ces mots alors on utilisera les parenthèses et le caractère "|",
exemple :
(chat|chien|oiseau) -> si le texte possède au moins l'un de ces 3 mots alors la recherche renverra bien quelque chose.

11. Chercher plusieurs mots avec la notion de "ET" (AND)

Si on veut chercher plusieurs mots dans un texte, et que ces mots doivent tous être présents ( notion de "ET") alors la syntaxe est la suivante:
mot1.*mot2.*mot3
il suffit d'intercaler entre chaque mot la chaine .*, exemple :
chien.*chat -> montrera tous les textes contenant à la fois le mot chien et chat.

12. Le caractère d'échappement "\"

Si pour une raison on veut rechercher du texte contenant les caractères reservées aux expressions régulières que nous venons de passer en revue "(, ), [, ], ., *, ?, +, ^, |, $ , - et \" alors il faut les protéger par une séquence d'échappement, qui correspond à la barre oblique \,
ainsi si on veut rechercher dans un texte une chaine contenant des crochets alors il faudra faire précéder ces caractères de cette manière : \[texte\], afin d'éviter que les crochets ici soit interprétés comme des caractères définissant une classe de caractères obligatoires.

En combinant dans votre expression régulière tous ces caractères spéciaux vous pourrez donc mettre en place une recherche très précise.