Regexp
Description
Une expression rationnelle ou expression régulière est en informatique une chaîne de caractères que l’on appelle parfois un motif et qui décrit un ensemble de chaînes de caractères possibles selon une syntaxe précise.
Guide
Les méta-caractères
Ce sont des caractères qui sont interprétés par l'analyseur. Pour que le méta-caractère * ne soit par interprété par l'analyseur, il faut le faire précéder du caractère '\', il sera alors considéré comme n'importe quel caractère.
Méta-caractères | Signification |
---|---|
? | Opérateur portant sur l'expression précédente : 0 ou une fois l'expression précédente. |
* | Opérateur portant sur l'expression précédente : 0, 1 ou plusieurs fois l'expression précédente. |
+ | Opérateur portant sur l'expression précédente : 1 ou plusieurs fois l'expression précédente. |
{n} | Opérateur portant sur l'expression précédente : n fois exactement l’expression précédente |
{n,m} | Opérateur portant sur l'expression précédente : n fois minimum et m fois maximum l’expression précédente |
^ | Négation ou début de ligne. |
$ | Fin de ligne. |
| | Opérateur ou. |
Les intervalles de caractères
Un intervalle de caractères peut être défini en écrivant entre [ ] la liste des caractères de cet intervalle.
Classe | Signification |
---|---|
[abc] | La classe des trois caractères a, b et c |
[a-z] | La classe de tous les caractères de a à z. |
[^abc] | La classe de tous les caractères sauf a, b et c. |
[a-zA-Z] | L'union des classes [a-z] et [A-Z]. |
Exemples
Avec la commande grep
grep '^smu' file
cherche 'smu' au début de chaque ligne dans file.
grep 'smu$' file
cherche 'smu' à la fin de chaque ligne dans file.
grep '^smu$' file
retourne les lignes contenant seulement et exactement 'smu'.
grep '\^s' file
retourne les lignes commençant par '^s',car "\" permet de considérer ^ comme un caractère normal et non plus un méta-caractère.
grep '[Ss]mu' file
affiche les lignes contenant 'Smu' ou 'smu'.
grep 'B[oO][bB]' file
affiche les lignes contenant BOB, Bob, BOb or BoB.
grep '^$' file
recherche les lignes vides dans file.
grep '[0-9][0-9]' file
recherche les lignes contenant 2 chiffres côte à côte.