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. Elle est très utile dans la manipulation de texte, pour rechercher, remplacer ou supprimer.

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 '\' ou le placer entre crochets [].

Les méta caractères
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.
[] Les crochets définissent une liste de caractères autorisés
() Les parenthèses définissent un élément composé de l'expression régulière qu'elle contient
| 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.

Les méta caractères
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

"^debut": chaîne qui commence par "debut"
"fin$": chaîne qui se termine par "fin"
"^chaîne$": chaîne qui commence et se termine par "chaîne"
"abc": chaîne contenant la chaîne "abc"
"abc+": chaîne qui contient "ab" suivie de un ou plusieurs "c" ("abc", "abcc" ...)
"abc*": chaîne qui contient "ab" suivie de zero ou plusieurs "c" ("ab", "abc" ...)
"abc?": chaîne qui contient "ab" suivie de zero ou un "c" ("ab" ou "abc")
"^abc+": chaîne commençant par "ab" suivie de un ou plusieurs "c" ("abc", "abcc" ...)
"abc{2}": chaîne qui contient "ab" suivie de deux "c" ("abcc")
"abc{2,}": chaîne qui contient "ab" suivie de deux "c" ou plus ("abcc" etc..)
"abc{2,4}": chaîne qui contient "ab" suivie 2, 3 ou 4 "c" ("abcc" .. "abcccc")
"a(bc)*": chaîne qui contient "a" suivie de zero "bc" ou plus
"un|le": chaîne qui contient "un" ou "le"
"(un|le) chien": chaîne qui contient "un chien" ou "le chien"
"(a|b)*": chaîne qui contient une suite de "a" ou de "b"
"^.{3}$": chaîne qui contient 3 caractères exactement.
"[abc]": chaîne qui contient un "a", un "b", ou un "c".
"[a-z]": chaîne qui contient un caractère compris entre "a" et "z".
"^[a-zA-Z]": chaîne qui commence par une lettre minuscule ou majuscule.
"^[^a-zA-Z]": chaîne qui ne commence pas par une lettre.
"[\+?{}.]": chaîne qui contient un de ces six caractères : \+?{}.

Application à 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.

Voir aussi

Articles connexes


La dernière modification de cette page a été faite le 28 mai 2013 à 10:46.