shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Como verificar formato de um email?


From: Herbert Alexander Faleiros
Subject: Re: [shell-script] Como verificar formato de um email?
Date: Thu, 20 Jul 2006 15:34:13 -0300
User-agent: KMail/1.9.3

On Thursday 20 July 2006 14:46, +[+ Suicide|Solution +]+ wrote:
[cut]
> com essa ER vc tampa esses buracos:
> [0-9A-Za-z_-.]+@([0-9A-Za-z_-]+\.)+[A-Za-z]{2,4}

Olá,

[...] mas cria um monte de outros problemas, veja:

$ for i in `cat lista`; do echo -n "$i: "; echo -n $i | 
egrep -q '[0-9A-Za-z_-.]+@([0-9A-Za-z_-]+\.)+[A-Za-z]{2,4}' && echo ok || 
echo err; done
ze@mane.nao_existe: ok
address@hidden: ok
ze@mane.nao_existe.com-: ok
ze@mane.nao_existe.com_: ok
-ze@mane.nao_existe.com: ok

Ou seja, validou vários exemplos de e-mails que não existem.

Já a ER que enviei (é só "um exemplo", que inclusive deixa passar algumas 
exceções não comuns):

$ for i in `cat lista`; do echo -n "$i: "; echo -n $i | 
egrep -q '^[a-z_\.]+@[a-z]+(\.[a-z]{2,3})(\.[a-z]{2})?$' && echo ok || echo 
err; done
ze@mane.nao_existe: err
address@hidden: err
ze@mane.nao_existe.com-: err
ze@mane.nao_existe.com_: err
-ze@mane.nao_existe.com: err

Ou seja, não validou nenhuma das exceções que a outra ER deixou passar...

Conclusão: ainda fico com a minha ER.

Pode ser melhorada um pouco mais (ainda deixando passar algumas exceções):

^[a-z_\.]+@([a-z]+\.)+([a-z]{2,3})(\.[a-z]{2})?$

Ah, excluí as abominações que não deveriam existir em endereços de e-mail, 
como A-Z e traço. Quem quiser é só adicionar à ER acima...

Até,

Herbert.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]