Como faço para pesquisar @ anydomain.anyTLD usando expressões regulares?
Como faço para pesquisar @ anydomain.anyTLD usando expressões regulares?
Respostas:
@[a-zA-Z0-0\-]*\.[a-zA-Z\.]*
Você poderia melhorar isso, mas não acho que o n ++ lide com padrões regex mais complicados.
Idealmente, usaríamos algo como
/@[a-z0-9\-]\.[a-z\.\-]{1,40}/i
O que suporta tudo, desde a lista de TLDs daiana, mas o N ++ não suporta isso.
E se quisermos ficar chiques, poderíamos fazer
(?:[a-z0-9!#$%&'*+/=?^_
{|} ~ -] + (?:. [a-z0-9! # $% & '* + / =? ^ _{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
Compatível com RFC2822 (veja aqui para mais detalhes)
.co.uk
gostaria de falar com você, são 4 caracteres. Descobri que a correspondência exata de regex geralmente é muito mais problemática do que vale a pena - por exemplo, com to . Um regex mais exato pode estar errado, mas eu estava usando(https?://[^\s]*)
uma expressão muito mais geral e funcionou bem.