Regex brasileiros · Biblioteca de padrões

Regex de e-mail (simplificado)

Regex simplificado de e-mail para triagem de campos de formulário. Pega erros óbvios; e-mail perfeito por regex é impraticável, a prova final é enviar uma mensagem.

O padrão

[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}

Flags: nenhuma. Sem âncoras: para validar um campo inteiro use ^(?:padrão)$.

Só o formato. Este regex confere a aparência do texto. Ele não prova que o dado existe nem que os dígitos verificadores estão certos.

Teste na hora

Tudo roda no seu navegador; nada do que você digita é enviado.

Exemplos

Como funciona, por partes

Armadilhas

Código pronto

JavaScript

const re = new RegExp("^(?:[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\\.[A-Za-z0-9-]+)*\\.[A-Za-z]{2,})$");
console.log(re.test(texto.trim()));

Python

import re

re_email_simplificado = re.compile(r"[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,}")
print(bool(re_email_simplificado.fullmatch(texto.strip())))

C#

using System.Text.RegularExpressions;

var re = new Regex(@"^(?:[A-Za-z0-9._%+-]+@[A-Za-z0-9-]+(?:\.[A-Za-z0-9-]+)*\.[A-Za-z]{2,})\z");
bool ok = re.IsMatch(texto.Trim());

Perguntas frequentes

Por que não existe o regex perfeito de e-mail?

Porque a especificação aceita formas que quase ninguém usa e porque a existência de uma caixa postal não é questão de formato. O padrão mais longo ainda erra para os dois lados. A saída prática é um regex simples mais confirmação por e-mail.

Posso usar o input type email do HTML?

Pode, e ele já faz uma triagem parecida. Use este regex quando o dado vem de planilhas, textos colados ou arquivos, em que não há campo de formulário para fazer a checagem.

Maiúsculas importam no endereço?

Na prática, os provedores tratam o usuário sem diferenciar maiúsculas. Normalize para minúsculas ao guardar, para evitar duplicidade, e use o padrão como está.

O que fazer com e-mails recusados?

Mostre uma mensagem clara e deixe a pessoa corrigir, em vez de apagar o campo. Erros de digitação comuns são o arroba ausente e o espaço no fim do texto.

Ferramentas

← Ver todos os padrões