Qual é o email correspondente à regex na regex básica do grep?

2

Eu criei um arquivo de texto e coloquei alguns endereços de e-mail nele. Então eu usei grep para encontrá-los. De fato funcionou:

# pattern="^[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-z]{2,}"
# grep -E $pattern regexfile

mas apenas enquanto mantive a opção -E para uma expressão regular estendida. Como preciso alterar o regex acima para usar o grep sem a opção -E?

    
por Abdul Al Hazred 07.04.2015 / 22:32

1 resposta

4

Esteja ciente de que os endereços de e-mail correspondentes são MUITO mais difíceis do que o que você tem. Vejo um trecho do livro Mastering Regular Expressions

No entanto, para responder à sua pergunta, para uma expressão regular básica, seus quantificadores precisam ser um dos * , \+ ou \{m,n\} (com as barras invertidas)

pattern='^[a-zA-Z0-9]\+@[a-zA-Z0-9]\+\.[a-z]\{2,\}'
grep "$pattern" regexfile

Você precisa citar a variável padrão

    
por 07.04.2015 / 22:52