<Précédent | Table des matières | Suivant>
* - Faire correspondre un élément zéro ou plusieurs fois
Comme le ? métacaractère, le * est utilisé pour désigner un élément facultatif ; cependant, contrairement au ?, l'élément peut apparaître un certain nombre de fois, pas seulement une fois. Disons que nous voulions voir si une chaîne était une phrase ; c'est-à-dire qu'il commence par une lettre majuscule, puis contient un nombre quelconque de lettres majuscules et minuscules et d'espaces, et se termine par un point. Pour correspondre à cette définition (très grossière) d'une phrase, nous pourrions utiliser une expression régulière comme celle-ci :
[[:supérieur :]][[:supérieur :][:inférieur :] ]*\.
L'expression se compose de trois éléments : une expression entre crochets contenant le [:supérieur:] classe de caractères, une expression entre crochets contenant à la fois le [:supérieur:] et de [:inférieur:] classes de caractères et un espace, et un point échappé avec une barre oblique inverse. Le deuxième élément est suivi d'un * métacaractère, de sorte qu'après la première lettre majuscule de notre phrase, un nombre quelconque de lettres majuscules et minuscules et d'espaces puissent la suivre et toujours correspondre :
[moi@linuxbox ~]$ echo "Ça marche." | grep -E '[[:upper:]][[:upper:][
:inférieur:] ]*\.'
Cela marche.
[moi@linuxbox ~]$ echo "Ceci fonctionne." | grep -E '[[:upper:]][[:upper:][
:inférieur:] ]*\.'
Cela marche.
[moi@linuxbox ~]$ echo "ce n'est pas le cas" | grep -E '[[:upper:]][[:upper:
][:inférieur:] ]*\.'
[moi@linuxbox ~]$
[moi@linuxbox ~]$ echo "Ça marche." | grep -E '[[:upper:]][[:upper:][
:inférieur:] ]*\.'
Cela marche.
[moi@linuxbox ~]$ echo "Ceci fonctionne." | grep -E '[[:upper:]][[:upper:][
:inférieur:] ]*\.'
Cela marche.
[moi@linuxbox ~]$ echo "ce n'est pas le cas" | grep -E '[[:upper:]][[:upper:
][:inférieur:] ]*\.'
[moi@linuxbox ~]$
L'expression correspond aux deux premiers tests, mais pas au troisième, car il lui manque le caractère majuscule de début et le point de fin requis.