Les expressions régulières
Une expression régulière est une séquence de symboles qui répond à une syntaxe précise permettant d’identifier des chaînes de caractères existantes. Dans une expression régulière, on peut trouver tous les caractères sauf le caractère de saut de ligne (\n).
Les expressions régulières sont utilisées dans beaucoup de commandes UNIX (« sed », « awk », « grep », « vi » …).
Définition des caractères spéciaux
b | Un caractère précis (ici le caractère « b »). |
. | Un caractère quelconque. |
^ | Début de ligne. |
$ | Fin de ligne. |
\ | Inhibition de l’interprétation d’un caractère spécial. |
[liste] | Un caractère quelconque dans la liste. |
[^liste] | Un caractère quelconque absent de la liste. |
Les équivalences
\n | Caractère de nouvelle ligne. |
\r | Caractère de retour à la ligne. |
\t | Caractère de tabulation. |
\s | Caractère d’espacement (espace, tabulation, saut de page, etc). |
\S | Tout ce qui n’est pas un espacement. |
\d | Un chiffre. |
\D | Tout sauf un chiffre. |
\w | Un caractère alphanumérique. |
\W | Tout sauf un caractère alphanumérique. |
Recherche de caractères selon un nombre d’occurrences
* | Recherche du caractère pointé de 0 à n fois. |
+ | Recherche du caractère pointé de 1 à n fois. |
? | Recherche du caractère pointé 0 ou 1 fois (à protéger avec un « \ » dans un grep). |
expr1|expr2 | Désigne une chaîne correspondant à l’une ou l’autre des deux expressions régulières. |
{x} | Un caractère pointé x fois exactement. |
{x,} | Un caractère pointé x fois au moins. |
{x, y} | Un caractère pointé x fois minimum, y fois maximum. |
Exemples
e$ | Désigne le caractère « e » en fin de ligne. |
^abc | Désigne la chaîne « abc » en début de ligne. |
^.{2}$ | Désigne une chaîne de 2 caractères. |
[Aa] | Désigne une chaîne contenant le caractère « A » ou « a ». |
o[Aa][Bb] | Désigne une chaîne contenant le caractère « o » suivi de « A » ou « a » puis de « B » ou « b ». |
[^Aa] | Désigne une chaîne ne contenant ni caractère « A » ni le caractère « a ». |
[a-e] | Désigne tous les caractères compris entre « a » et « e » (« a »,« b »,« c », « d », « e »). |
ab* | Désigne une chaîne contenant un « a » suivi de 0 ou plusieurs « b ». |
ab+ | Désigne une chaîne contenant un « a » suivi d’au moins un « b ». |
ab?c | Désigne une chaîne contenant un « a » suivi d’un « b » ou pas puis d’un « c ». |
abc|ghi | Désigne une chaîne contenant la séquence « abc » ou la séquence « ghi ». |