Regexp

Dans le jargon informatique, une expression régulière, ou Regexp, est une chaîne de caractères servant à décrire un ensemble de chaînes de caractères respectant une syntaxe possible. Elle est très utile dans la manipulation de texte, pour rechercher, remplacer ou supprimer.


Guide

Méta-caractères

Un méta-caractère est un symbole remplissant une fonction particulière.



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.

N.B. : Pour que le méta-caractère * ne soit par interprété par l'analyseur, il faut utiliser « \* » 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 à 11:46.