1 Expressions régulières/rationnelles
1.1 Introduction
Les expressions rationnelles 1sont des chaînes de caractères dénissant des
langages réguliers 2et utilisés pour reconnaître des motifs. De nombreux outils et
langages de programmation les utilisent pour des recherches et des modications
de texte contextuelles avancées :
— Outils en ligne de commandes : grep,sed,awk, …
— Langages de scripts : perl,php,python, …
— Langages de programmation : java,c++, …
— Éditeurs de texte : vi,emacs,jEdit, …
— Traitements de texte : LibreOce, …
Il existe de nombreuses variantes et dialectes, cependant il est possible de
distinguer deux grandes familles :
— Expression régulière POSIX : l’objectif avec ce standard est de répondre
à la problématique de la multiplication des syntaxe.
— PCRE (Perl-Compatible Regular Expression) : Perl est un langage propo-
sant nativement un traitement puissant des expressions régulière. L’en-
semble de fonctionnalités disponible a été implémenté dans une biblio-
thèque à laquelle Il est possible de faire appel dans d’autre contextes.
De manière transversale, les expressions régulières sont utilisées soit pour
eectuer une recherche de motif, soit pour remplacer un motif par une chaîne
de caractère. Les fonctions ont donc la forme suivante :
—trouve(regex,texte) →booléen
La fonction trouve retourne vrai si le motif regex se trouve dans la
chaîne de caractères texte (il est alors possible de récupérer lla partie
de la chaine reconnue par le motif).
—remplace(regex,chaîne,texte) →chaîne de caractères
La fonction remplace retourne une chaîne de caractères où les occur-
rences du motif regex dans la chaîne de caractères texte ont été rem-
placées par la chaîne.
On trouve aussi dans les langages de programmation :
—découpe(regex,texte) →tableau
Cette fonction découpe la chaîne texte par rapport au motif regex, le
résultat est stocké dans un tableau de chaîne de caractères.
1.2 Principe sous-jacent
La reconnaissance de motif se fait à l’aide d’un diagramme de transition. Sa
mise en œuvre se fait à l’aide d’automates nis déterministes (AFD) avec un
état initial et un ou plusieurs états naux. Le principe est le suivant :
1. l’état courant est l’état initial
1. Appelées au départ improprement expressions régulières le terme est entré dans le lan-
gage courant.
2. Il existe de nombreux langages, chacun avec leur spécicités et leurs limites.
1