Expressions Régulières 

Les « expressions régulières » sont un outil pour l’extraction et le traitement d’informations contenues dans un fichier texte. Elles sont implémentées dans des commandes Unix comme sed, awk, dans l’éditeur vi, et, bien sûr, sont utilisées de manière intensive par le langage Perl.

Une expression régulière définit un « masque », auquel sera comparé un ensemble de chaînes de caractères : le masque établit les critères d’appartenance d’une chaîne à un ensemble. Ainsi, par exemple, on codera l’ensemble caractères alphabétiques en minuscules avec l’expression régulière : [a-z] (ce qui est équivalent à écrire : [abcdefghijklmnopqrstuvwxyz])

Méta-caractères

Les caractères réservés (méta-caractères) [ et ] désignent le début et la fin de l’intervalle considéré. Il existe d’autres méta-caractères, et parmi eux :

. désigne n’importe quel caractère sauf le caractère de fin de ligne
+ désigne le caractère qui précède répété au moins une fois (ainsi a+ fait correspondre les séquences « a », « aa », « aaa », etc.)
 ? désigne le caractère qui précède répété au plus une fois (ainsi, a ? fait correspondre les séquences « » (chaîne vide) et « a »)
* désigne le caractère qui précède répété un nombre quelconque de fois, y compris zéro (ainsi, a* fait correspondre les séquences « », « a », « aa », « aaa », etc.)
^ désigne le ou les caractères qui précèdent s’ils sont situés en début de ligne (ainsi, ^L désignera le L de « La vie... », mais pas le L de « ceci est un L »)
$ désigne le ou les caractères qui précèdent s’ils sont situés en fin de ligne (ainsi, L$ désignera le L de « ceci est un L », mais pas le L de « La vie... »)
() désigne un groupe de caractères (ainsi, a(bcd)+ fait correspondre les séquences « abcd », « abcdbcd », etc.) et permet également de mémoriser une séquence (ainsi, <(.+)> mémorise le texte contenu entre < et > dans la variable $1)
| opérateur OR (ainsi, a|b désigne le caractère a ou le caractère b)
[^] opérateur « complémentaire » (a insi, [^abc] désigne l’ensemble caractères qui ne sont pas a, b et c)
n désigne le caractère qui précède exactement n fois (ainsi, a2 fait correspondre la séquence « aa » et non « a » ou « aaa »)

Cette liste n’est pas exhaustive, mais définit les méta-caractères les plus courants. On voit immédiatement qu’en combinant plusieurs de ces méta-caractères, de très nombreuses possibilités de manipulation d’une chaîne deviennent possibles. A noter que tous les métacaractères peuvent être considérés comme des caractères traditionnels au sein d’une expression régulière : il suffit de les faire précéder d’un \\. Ainsi, \\+ désigne le caractère traditionnel « + ». Le caractère « \\ » lui-même s’écrira en particulier \\\\.

Caractères spéciaux

Catégorie particulière de méta-caractères, les caractères spéciaux permettent de faire référence à des éléments « invisibles » d’une chaîne de caractères, comme une tabulation, un retour à la ligne, ou la fin d’une ligne, ou à des types de caractères spécifiques (lettres, chiffres, etc.). Ces caractères spéciaux sont codés par un \\ suivi d’une lettre. Voici les principaux :

\\n caractère de fin de ligne
\\r retour à la ligne (retour chariot)
\\t< /B> tabulation
\\s espacement («  », « . », « , »)
\\S tout ce qui n’est pas un espacement
\\d n’importe quel chiffre
\\D tout ce qui n’est pas un chiffre
\\w n’importe quelle lettre
\\W tout ce qui n’est pas une lettre

Copyright 2000-2009 BUCHARD@comwebmaster le 8.01.2002