<Anterior | Conteúdo | Próxima>
* - Corresponde a um elemento zero ou mais vezes
Tal como o ? metacaractere, o * é usado para denotar um item opcional; no entanto, ao contrário do ?, o item pode ocorrer várias vezes, não apenas uma. Digamos que queremos ver se uma string é uma frase; ou seja, ele começa com uma letra maiúscula, contém qualquer número de letras maiúsculas e minúsculas e espaços e termina com um ponto. Para corresponder a esta definição (muito grosseira) de uma frase, poderíamos usar uma expressão regular como esta:
[[: superior:]] [[: superior:] [: inferior:]] * \.
A expressão consiste em três itens: uma expressão de colchetes contendo o [:superior:] classe de caracteres, uma expressão de colchetes contendo os [:superior:] e [:diminuir:] classes de caracteres e um espaço, e um período escapado com uma barra invertida. O segundo elemento é seguido por um * metacaractere, de modo que após a letra maiúscula inicial em nossa frase, qualquer número de letras maiúsculas e minúsculas e espaços possam segui-lo e ainda corresponder:
[me @ linuxbox ~] $ echo "Isso funciona." | grep -E '[[: superior:]] [[: superior:] [
:diminuir:] ]*\.'
Isso funciona.
[me @ linuxbox ~] $ echo "Isso funciona." | grep -E '[[: superior:]] [[: superior:] [
:diminuir:] ]*\.'
Isso funciona.
[me @ linuxbox ~] $ echo "isso não" | grep -E '[[: superior:]] [[: superior:
][:diminuir:] ]*\.'
[me @ linuxbox ~] $
[me @ linuxbox ~] $ echo "Isso funciona." | grep -E '[[: superior:]] [[: superior:] [
:diminuir:] ]*\.'
Isso funciona.
[me @ linuxbox ~] $ echo "Isso funciona." | grep -E '[[: superior:]] [[: superior:] [
:diminuir:] ]*\.'
Isso funciona.
[me @ linuxbox ~] $ echo "isso não" | grep -E '[[: superior:]] [[: superior:
][:diminuir:] ]*\.'
[me @ linuxbox ~] $
A expressão corresponde aos primeiros dois testes, mas não ao terceiro, uma vez que não possui o caractere maiúsculo e o ponto final necessários.