Tutorial de como encontrar e-mails usando RegEx

Como encontrar endereços de e-mail usando RegEx

Por em 18/01/2022

Ene Tutoriais

Alguma vez você já tentou buscar e-mails usando RegEx? Pode parecer simples, mas é preciso pensar nas variações que cada e-mail pode ter. Hoje, nós veremos como fazer isso de forma bem abrangente.

Como dito acima, a montagem da expressão deve ser pensada de forma que nenhum endereço passe em branco. Por isso, é preciso considerar todos os caracteres aceitos, além dos formatos também.

Apesar disso, a expressão regular que usaremos não é nenhum bicho de sete cabeças. Com a explicação abaixo, você verá que é bem simples, na verdade.

Veja como procurar endereços de e-mail usando expressões regulares.

Vamos ao que interessa!

Buscar por e-mails usando expressões regulares é bem mais simples do que se imagina. Em comparação com a busca por telefones, por exemplo, os e-mails dão muito menos trabalho.

Digo isso pois, diferentemente dos telefones, os e-mails possuem uma estrutura que não varia de acordo com o país, cidade, etc. Assim sendo, não é preciso adaptar o código por conta do formato do e-mail.

Por isso, o comando que usaremos para procurar e-mails usando RegEx será o seguinte:

[\w\-.]+@[\w\-]+\.\w+\.?\w*

Pelo comando acima, será possível buscar e-mails independente do endereço do provedor. Isso significa que o comando buscará por e-mails com registro sem nacionalidade (ex.: .com, .org), tanto quanto e-mails que possuam a nacionalidade do registro (ex.: .com.br).

Janela de resultado da busca do Notepad++ contendo quatro endereços de e-mail encontrados via expressão regular

Busca de e-mail no Notepad++

Vejamos abaixo como funciona essa expressão regular.

Destrinchando a RegEx de e-mail

A expressão regular para busca de e-mails pode ser dividida em três partes. A primeira delas é a responsável por buscar o nome do utilizador do e-mail, ou seja, os caracteres antecedentes ao símbolo @.

O código responsável por encontrar o nome do utilizador é este: [\w\-.]+. Nesta parte, temos os códigos \w, que busca por letras, números e _, além dos caracteres - e ., comuns em endereços de e-mail. Vale lembrar que o caractere - deve ser precedido por uma \ para ser interpretado como um caractere sem função.

Leia também »  Tutorial LibreOffice Draw - Pra quê serve o Draw?

Todo este grupo de códigos vai agrupado dentro de [], o que significa que a expressão deve buscar por todos eles primeiramente. Por fim, o + após os [] faz com que a expressão busque por uma sequência de um ou mais caracteres do grupo.

Resultados da busca do Brackets mostrando que todos os endereços de e-mail foram encontrados via expressão regular

Busca de e-mail no Brackets

Em seguida, vem a segunda parte da RegEx: @[\w\-]+\.\w+. É nesta parte que a mágica acontece já que o @ está presente, e sem nenhum comando que altere seu comportamento, o que o torna um item obrigatório no resultado da expressão.

Após o @, vem o comando [\w\-]+, que funciona da mesma forma que a primeira parte da expressão, exceto que ele não busca pelo caractere .. Esta parte é responsável por buscar o nome do provedor.

Depois disso, buscaremos pelo complemento do endereço do provedor através deste comando: \.\w+. Enquanto o \. procura pelo . após o nome do provedor, o \w+ encontra os caracteres posteriores a ele (ex.: .com). Assim como o -, aqui o . também possui uma \ antes com o intuito de torná-lo um caractere sem função.

Por último, a parte final da expressão é esta: \.?\w*. Aqui a ideia é verificar se há mais complementos no nome do provedor, por exemplo, [email protected].

Primeiramente, usamos o \.? para verificar se existe um . após o primeiro complemento do endereço. O uso da ? serve justamente para verificar se um caractere existe ou não.

Em seguida, a busca pelos caracteres do complemento final é feita pelo comando \w*. Neste caso, utilizamos o * que, além de verificar a existência de um caractere, busca por uma sequência dele caso ele realmente exista.

Resultados da busca do VS Code mostrando que todos os endereços de e-mail foram encontrados via expressão regular

Busca de e-mail no VS Code

Com isso, finalmente temos nossa RegEx para busca de e-mails.


Deu para entender como funciona a expressão acima? Se quiser ler mais tutoriais sobre o assunto, siga nossas redes sociais ou inscreva-se em nossa newsletter mensal no rodapé do site.

PUBLICIDADE