notação (. *)
O * nas expressões regulares. * e * refere-se a uma contagem, não a caracteres por palavra, mais exatamente significa 'zero ou mais' . Além disso, o . significa 'qualquer caractere único' .
Então, quando você os coloca juntos, você obtém 'zero ou mais caracteres' . Por exemplo, strings como estas:
- linux
- linnnnnx
- lnx
- oi linux
- lx
Seria correspondido por <l.*x>
. O último é importante, mostra que o . * também não combina com nada.
notação (*)
O uso de * sozinho como eu disse é um contador. Então, quando você o coloca após uma letra como 'l' , o * está dizendo 'zero ou mais de l' .
Observe se nós recebemos l*x
, isso corresponderá a l...x
, mas provavelmente não pelo motivo que você pensa.
% echo "l...x" | grep "l*x"
l...x
Ele está combinando no "x" à direita. O 'l' não tem nada a ver com o porque isso está sendo correspondido, além do fato de que o 'x' é precedido por 'zero ou mais l's' .