Documentation - Regex

Une expression rationnelle est une notation permettant de décrire un ensemble de suite de symboles. En pratique, elle permet de représenter de manière très compacte un ensemble de chaînes de caractères.

Sous Unix, de nombreux utilitaires tels que le shell bash, grep ou bien emacs manipulent des expressions rationnelles. Elles servent principalement (mais pas uniquement) à effectuer des recherches dans un texte. Ainsi, un utilisateur peut représenter de manière compacte un ensemble de chaînes de caractères sous la forme d'une expression rationnelle et un outil adéquat (tel que grep) peut rechercher dans un texte toutes les chaînes de caractères qui se trouvent dans l'ensemble décrit par l'expression rationnelle.

Dans le contexte de la recherche dans un texte, on désigne souvent l'expression rationnelle comme étant un motif ou un pattern et l'on désire trouver dans un texte toutes les séquences qui correspondent au motif donné.

Au final, les expressions rationnelles sont très flexibles et peuvent représenter des ensembles de chaînes de caractères allant de "l'ensemble contenant uniquement la lettre a" jusqu'à "l'ensemble contenant toutes les chaînes de caractères commençant par la suite de lettres abc suivie d'un nombre arbitraire d'espaces suivi de soit la suite xyz soit une répétition entre 4 et 42 fois de la suite nve".

Le terme anglais est regular expression, souvent abrégé en RegExp ou Regex. La traduction française est expression rationnelle (abrégé en ER) mais l'on rencontre souvent la traduction erronée expression régulière.

Syntaxe

Une expression rationnelle est composée de caractères et de méta-caractères.

Les caractères se représentent eux-même. Ils conservent leur signification littérale. Ce sont les symboles (les caractères) que l'on va retrouver dans l'ensemble de chaînes décrit par l'expression rationnelle. Ainsi, l'expression rationnelle formée par les caractères abc représente l'ensemble de chaînes de caractères contenant l'unique chaîne abc.

Les méta-caractères changent l'interprétation des caractères et modifient donc l'ensemble des chaînes de caractères représenté par l'expression rationnelle. Par exemple, le méta-caractère * placé après un caractère signifie "toute répétition (y compris zéro) de ce caractère". Ainsi, l'expression rationnelle abc* représente l'ensemble des chaînes de caractères commençant par ab suivi d'un nombre quelconque de c : {ab, abc, abcc, abccc, abcccc, abccccc, abcccccc, ... }

La syntaxe des expressions rationnelles est loin d'être standardisée. Certains méta-caractères de base sont standards, mais chaque outil propose diverses extensions. Voici cependant une liste des méta-caractères les plus courants :

La plupart des outils de recherche de texte manipulant des expressions rationnelles proposent aussi des méta-caractère permettant de situer l'emplacement du texte à rechercher par rapport au début ou à la fin de la ligne.

Exemples

Voici une liste d'exemple d'expressions rationnelles accompagnées de l'explication de l'ensemble qu'elles représentent.

Informations complémentaires

Recupéré sur https://wiki.student.info.ucl.ac.be/Documentation/Regex
Page mise à jour le 13 décembre 2013 à 10h05