Como validar um e-mail usando expressões regulares em Java?

A validação de e-mail em Java pode ser feita utilizando expressões regulares para garantir que o formato do endereço esteja correto.

Como validar um e-mail usando expressões regulares em Java?

Validar um e-mail é uma tarefa essencial para garantir que os usuários forneçam um endereço válido em formulários e cadastros. Em Java, essa validação pode ser feita de maneira eficiente utilizando expressões regulares.

1. Criando uma Expressão Regular para E-mails

A estrutura básica de um e-mail é: usuario@dominio.com. Para validar um e-mail corretamente, utilizamos a seguinte regex:

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

Essa expressão possui:

  • [a-zA-Z0-9._%+-]+ → Nome do usuário (letras, números e alguns símbolos permitidos)
  • @ → O caractere obrigatório "@"
  • [a-zA-Z0-9.-]+ → Domínio do e-mail
  • \. → O ponto separador
  • [a-zA-Z]{2,} → Extensão do domínio (mínimo de 2 caracteres, como .com, .org, etc.)

2. Implementação em Java

Podemos utilizar Pattern e Matcher para validar e-mails.

import java.util.regex.*;

public class ValidadorEmail {
    public static boolean validarEmail(String email) {
        String regex = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(email);
        return matcher.matches();
    }

    public static void main(String[] args) {
        String email = "usuario@email.com";
        System.out.println("E-mail válido? " + validarEmail(email));
    }
}

Saída esperada:

E-mail válido? true

3. Utilizando matches() para Validação Rápida

Se quisermos validar um e-mail sem utilizar Pattern e Matcher, podemos usar diretamente o método matches().

public class TesteMatches {
    public static void main(String[] args) {
        String email = "teste@dominio.com";
        boolean valido = email.matches("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$");
        System.out.println("E-mail válido? " + valido);
    }
}

4. Lidando com E-mails Inválidos

Se o e-mail não estiver no formato correto, a função validarEmail() retornará false.

System.out.println(validarEmail("usuario@email")); // Falso (sem TLD)
System.out.println(validarEmail("usuario.com")); // Falso (sem @)
System.out.println(validarEmail("@email.com")); // Falso (sem nome do usuário)

5. Quando Utilizar a Validação de E-mail?

  • Em formulários de cadastro para evitar endereços inválidos.
  • Em sistemas de autenticação para garantir um e-mail formatado corretamente.
  • No processamento de listas de e-mails para evitar registros incorretos.

Conclusão

A validação de e-mails em Java pode ser feita de maneira simples utilizando expressões regulares. O uso de Pattern e Matcher garante uma verificação precisa, reduzindo erros e garantindo que os e-mails inseridos sejam formatados corretamente.

A validação de e-mails é essencial para manter a integridade dos dados em sistemas modernos. Muitas aplicações utilizam esse processo para evitar fraudes e garantir que os usuários forneçam informações corretas. Além disso, serviços de envio de e-mails, como o SendGrid e o Mailchimp, dependem de listas de e-mails válidos para evitar bloqueios e rejeições. Saber validar corretamente um e-mail melhora a segurança e eficiência das aplicações.

Algumas aplicações:

  • Filtragem de e-mails inválidos em formulários
  • Validação de usuários em sistemas de login
  • Melhoria da entrega de e-mails em serviços de marketing
  • Garantia de integridade de dados em bancos de dados

Dicas para quem está começando

  • Use Pattern e Matcher para validação avançada
  • Teste e-mails com diferentes formatos para verificar a regex
  • Evite regex muito complexas, pois podem afetar a performance
  • Utilize matches() para validações simples e rápidas
  • Combine validação regex com confirmação de e-mail via envio real

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como validar um e-mail usando expressões regulares em Java

Compartilhe este tutorial

Continue aprendendo:

O que são e como funcionam as expressões regulares em Java

Expressões regulares em Java são padrões utilizados para busca, validação e manipulação de strings de maneira eficiente.

Tutorial anterior

Como trabalhar com listas ArrayList LinkedList em Java

ArrayList e LinkedList são implementações da interface List em Java, utilizadas para armazenar e manipular coleções dinâmicas de elementos.

Próximo tutorial