Expressions Régulières en Français

Introduction aux Expressions Régulières

Les expressions régulières, souvent abrégées en regex ou regexp, constituent un langage destiné à la recherche de motifs dans du texte. De nombreuses langues de programmation, qu'il s'agisse de Python, Java, JavaScript ou C++, intègrent des implémentations de regex, directement ou via des bibliothèques. Bien que les expressions régulières soient généralement normalisées, certaines variations peuvent exister selon le langage utilisé.

Structure d'une Expression Régulière

Un motif d'expression régulière est une chaîne composée de caractères ordinaires et de métacaractères ayant des significations particulières. Par exemple, le motif "h" correspond à la lettre "h" seule, tandis que si l'on ajoute le métacaractère "." – qui représente n'importe quel caractère – le motif "h." peut correspondre à des séquences telles que "ha", "ho", "h5" ou "h!".

Métacaractères Utilisés en Expression Régulière

Voici quelques métacaractères et séquences utilisés pour le motif de correspondance :

| Métacaractère | Description | Exemple | |---------------|-------------|---------| | ^ | Correspond au début d'un texte ou d'une ligne. | ^a correspond seulement au premier "a" dans "a match est fait". | | $ | Correspond à la fin d'un texte ou d'une ligne. | !$ correspond seulement au deuxième "!" dans "Bonjour! Monde!". | | . | Correspond à n'importe quel caractère unique. | . correspond à "c", "a" et "t" dans "cat". | | * | Correspond à l'élément précédent zéro ou plusieurs fois. | co*t correspond à "ct", "cot" et "coot". | | + | Correspond à l'élément précédent une ou plusieurs fois. | co+t correspond à "cot", "coot" mais pas à "ct". | | ? | Correspond à l'élément précédent zéro ou une fois. | co?t correspond à "ct", "cot" mais pas à "coot". | | {n} | Correspond à l'élément précédent exactement n fois. | co{2}t correspond à "coot" mais pas à "cot" ni "cooot". | | {,max} | Correspond à l'élément précédent de zéro à max fois. | co{,2}t correspond à "ct", "cot", "coot" mais pas à "cooot". | | {min,} | Correspond à l'élément précédent min ou plus de fois. | co{2,}t correspond à "coot" et "cooot" mais pas à "cot". | | {m,n} | Correspond à l'élément précédent au moins m et au maximum n fois. | co{2,3}t correspond à "coot" et "cooot" mais pas à "cot". | | [ ] | Correspond aux caractères à l'intérieur des crochets. | [bcm]at correspond à "cat", "bat" et "mat". | | [^ ] | Correspond aux caractères n'étant pas à l'intérieur des crochets. | b[^a]t correspond à "bit", "bot", et "but" mais pas à "bat". | | | | Correspond à l'un ou l'autre des motifs. | yes|no correspond à "yes" ou "no". | | ( ) | Regroupe un motif ensemble et le marque pour référence future. | (ca|bi)t correspond à "cat" et "bit". | | \w | Correspond aux caractères alphanumériques et à "_". | \w+ correspond à "Hello" et "World" dans "Hello World!". | | \W | Correspond aux caractères non-alphanumériques. | \W correspond à l'espace et "!" dans "Hello World!". | | \b | Correspond aux limites de mot. | o\b correspond au premier "o" dans "Hello World!". | | \B | Correspond aux non-limites de mot. | o\B correspond au deuxième "o" dans "Hello World!". | | \d | Correspond à un caractère numérique. | \d+ correspond à "123" dans "abc123". | | \D | Correspond à un caractère non numérique. | \D+ correspond à "abc" dans "abc123". | | \s | Correspond à un caractère d'espace. | \s correspond à l'espace dans "Hello World!". | | \S | Correspond à un caractère non-espace. | \S+ correspond à "Hello" et "World!" dans "Hello World!".