O asterisco é apenas um operador de repetição , mas você precisa dizer o que você repete. /*abc*/
corresponde a uma string contendo ab e zero ou mais c's (porque o segundo * está no c; o primeiro não tem sentido porque não há nada para repetir). Se você quiser corresponder a qualquer coisa, você precisa dizer .*
- o ponto significa qualquer caractere ( dentro de certas diretrizes ). Se você deseja corresponder apenas a abc, basta dizer grep 'abc' myFile
. Para uma correspondência mais complexa, você precisa usar .*
- grep 'abc.*def' myFile
irá corresponder a uma string que contém abc seguido por def com algo opcionalmente no meio.
Atualização com base em um comentário:
*
em uma expressão regular não é exatamente igual a * no console. No console, * é parte de uma construção glob e apenas atua como um curinga (por exemplo ls *.log
, listará todos os arquivos que terminam em .log). No entanto, em expressões regulares, * é um modificador, o que significa que se aplica apenas ao caractere ou grupo que o precede. Se você quiser * em expressões regulares para atuar como um curinga, você precisa usar .*
como mencionado anteriormente - o ponto é um caractere curinga, e a estrela, ao modificar o ponto, significa encontrar um ou mais pontos; ou seja, encontre um ou mais de qualquer personagem.