Mise à jour : Debian 11.2 - Bullseye
Références :
Sommaire
^ Motif en début de ligne
$ Motif en fin de ligne
. Remplace un caractère quelconque
* Caractère précédent présent 0 ou plusieurs fois, équivalent à {0,}
[liste] Remplace un caractère de la liste
[[:classe:]] Remplace un caractère de la classe
[^liste] Remplace un caractère n'appartenant pas à la liste
[^[:classe:]] Remplace un caractère n'appartenant pas à la classe
[[:alnum:]] [[:cntrl:]] [[:lower:]] [[:space:]] [[:alpha:]] [[:digit:]] [[:print:]] [[:upper:]] [[:blank:]] [[:graph:]] [[:punct:]] [[:xdigit:]]
\w Remplace un caractère de la liste (a-zA-Z0-9-_) \W Remplace un caractère absent de la liste (a-zA-Z0-9-_)
\s Remplace un caractère de la classe espace (espace ou tabulations ou nouvelle ligne)
\S Remplace un caractère absent de la classe espace
? Caractère précédent existe 0 ou 1 fois, équivalent à {,1}
+ Caractère précédent existe au moins 1 fois, équivalent à {1,}
{x} Caractère précédent existe x fois
{x,y} Caractère précédent existe entre x et Y fois
| L'un ou l'autre des motifs avant et après le symbole
() Regroupement, par exemple (motif1|motif2){x}
\bmotif motif est le début d'un nouveau mot
motif\b motif est la fin d'un nouveau mot
\Bmotif motif n'est pas le début d'un nouveau mot
motif\B motif n'est pas la fin d'un nouveau mot
$ echo "ceci est un test ext regex" |grep '^ceci' --colour
ceci est un test ext regex
$ echo "ceci est un test ext regex" |sed -n '/^ceci/p'
ceci est un test ext regex
$ echo "ceci est un test ext regex" |grep -E 'tes?t' --colour
ceci est un test ext regex
$ echo "ceci est un test ext regex" |sed -E -n '/tes?t/p'
ceci est un test ext regex
$ echo "ceci est un test ext regex" |sed -n '/tes\?t/p'
ceci est un test ext regex
$ echo "ceci est un test ext regex" |grep -o 'tes\?t'
test
$ echo "test []" |grep -o "\[]"
[]
$ echo "RegexExtRegex"|grep '^Regex' --colour
RegexExtRegex
$ echo "RegexExtRegex"|grep 'Regex$' --colour RegexExtRegex
$ echo "RegexExtRegex"|grep '\bRegex' --colour
RegexExtRegex
$ echo "RegexExtRegex"|grep 'Regex\b' --colour
RegexExtRegex
$ echo "RegexExtRegex"|grep '\BExt' --colour
RegexExtRegex
$ echo "RegexExtRegex"|grep 'Ext\B' --colour
RegexExtRegex
$ echo "Ext ExT ExG Ex Ex1"|grep 'x.' --colour
Ext ExT ExG Ex Ex1
$ echo "Ext ExT ExG Ex Ex1"|grep 'x[tG1]' --colour
Ext ExT ExG Ex Ex1
$ echo "Ext ExT ExG Ex Ex1"|grep 'x[A-Z]' --colour
Ext ExT ExG Ex Ex1
$ echo "Ext ExT ExG Ex Ex1"|grep 'x[^tG1]' --colour
Ext ExT ExG Ex Ex1
$ echo "Ext ExT ExG Ex Ex1"|grep 'x[[:lower:]]' --colour
Ext ExT ExG Ex Ex1
$ echo "Ext ExT ExG Ex Ex1"|grep 'x[[:space:]]' --colour
Ext ExT ExG Ex Ex1
$ echo "Ext ExT ExG Ex Ex1"|grep 'x[^[:alpha:]]' --colour
Ext ExT ExG Ex Ex1
$ echo "Exension Extension Exttension Extttension"|grep 'Ext*e' --colour
Exension Extension Exttension Extttension
Attention : Dans les exemples qui suivent, si le motif ne décrit pas le caractère suivant le caractère répété, toutes les occurrences seront sélectionnées, indépendamment du nombre indiqué, par exemple
$ echo "Exension Extension Exttension Extttension"|grep -E 'Ext?' --colour
Exension Extension Exttension Extttension
$ echo "Exension Extension Exttension Extttension"|grep -E 'Ext?e' --colour
Exension Extension Exttension Extttension
$ echo "Exension Extension Exttension Extttension"|grep -E 'Ext+e' --colour
Exension Extension Exttension Extttension
$ echo "Exension Extension Exttension Extttension"|grep -E 'xt{2}e' --colour
Exension Extension Exttension Extttension
$ echo "Exension Extension Exttension Extttension"|grep -E 'xt{2,}e' --colour
Exension Extension Exttension Extttension
$ echo "Exension Extension Exttension Extttension"|grep -E 'xt{1,2}e' --colour
Exension Extension Exttension Extttension
$ echo "Regex Ext" |grep -E 'Reg|Ext' --colour
Regex Ext
$ echo "ABCD-1234-12AB-1A2B-A1B2" |grep -E '([[:digit:]][[:alpha:]]){2}-' --colour
ABCD-1234-12AB-1A2B-A1B2
$ echo "01 2345 6789" |grep -oE "^(0|\+33 )[1-9]( *[0-9]{2}){4}$"
01 2345 6789
$ echo "+33 1 23 45 67 89" |grep -oE "^(0|\+33 )[1-9]( *[0-9]{2}){4}$"
+33 1 23 45 67 89