Guia rápido de regex

Guia rápido de regex: sintaxe + 30 padrões testados | We.Inc

Sintaxe de regex em uma tabela, mais 30 padrões prontos para e-mail, URL, telefone, código postal, senha, datas e mais. Cada um roda ao vivo com exemplos que devem ou não casar, e você pode editá-los.

Guia rápido de regex

Uma expressão regular é um padrão para encontrar texto. \d casa com um dígito, \w com um caractere de palavra, + significa um ou mais, ? torna algo opcional, e ^ e $ prendem a correspondência ao início e ao fim. Abaixo estão a sintaxe completa e 30 padrões testados, cada um verificado ao vivo com textos que devem e que não devem casar.

Seis símbolos que cobrem a maioria dos padrões

Copie um padrão e teste seu próprio texto na caixa ao lado. Todo padrão desta página vem com exemplos que devem casar e exemplos que não devem, e a página os executa no seu navegador para você ver cada resultado.

Perguntas frequentes

Qual é a melhor regex para endereços de e-mail?

Uma prática é ^[^\s@]+@[^\s@.]+(\.[^\s@.]+)+$: algum texto, um @ e um domínio com pelo menos um ponto. Ela pega erros de digitação sem rejeitar endereços incomuns, mas válidos. Nenhuma regex sabe se um endereço existe de verdade, então envie um e-mail de confirmação.

Como validar um número de telefone com regex?

Remova espaços, hífens e parênteses e depois verifique o formato E.164: ^\+[1-9]\d{6,14}$. Para números dos EUA e do Canadá digitados com separadores, use o padrão norte-americano desta página. Para uma verificação completa por país, uma biblioteca de telefones é mais confiável.

O que ^ significa em regex?

Fora de colchetes, ^ ancora a correspondência no início do texto, ou de cada linha com a flag m. Dentro de colchetes, como primeiro caractere, como em [^0-9], significa nenhum destes caracteres.

Por que minha regex funciona em JavaScript mas não em Python?

Os dialetos diferem em detalhes: Python escreve grupos nomeados como (?P<name>...), não suporta \p{L} no módulo re embutido e só permite lookbehind de tamanho fixo. Veja a tabela de linguagens desta página para as diferenças mais comuns.

Qual é a diferença entre guloso e preguiçoso?

Quantificadores gulosos como * e + pegam o máximo de texto possível e depois recuam. Adicionar ? os torna preguiçosos, então pegam o mínimo possível. Em <b>x</b><b>y</b>, <.+> casa com tudo, enquanto <.+?> casa só com <b>.

Lendo um padrão da esquerda para a direita

Erros comuns

Referência de sintaxe de regex (dialeto JavaScript)

Flags do JavaScript

As mesmas ideias em JavaScript, Python e PHP

Endereço de e-mail (prático)

Algum texto, um @ e depois um domínio com pelo menos um ponto. Sem espaços.

Nenhuma regex verifica um endereço de e-mail por completo. Envie um e-mail de confirmação para saber se ele é real.

Endereço web (http ou https)

http ou https, um host com pelo menos um ponto, uma porta opcional e depois qualquer caminho, query ou fragmento sem espaços.

Em JavaScript, new URL(value) dentro de um bloco try é a verificação mais rigorosa.

Nome de domínio

Rótulos de letras, dígitos e hífens internos, separados por pontos, terminando em um domínio de topo só com letras.

Slug de URL

Letras minúsculas e dígitos em grupos unidos por hífens simples.

Número de telefone internacional (E.164)

Um sinal de mais, um código de país que não começa com 0 e de 7 a 15 dígitos no total, sem espaços.

Remova espaços, hífens e parênteses antes. Para validação real por país, use uma biblioteca de telefones.

Número de telefone dos EUA e do Canadá

+1 opcional, um código de área e um prefixo de 3 dígitos que não começam com 0 ou 1, depois 4 dígitos, com os separadores comuns.

ZIP code dos EUA

Cinco dígitos, opcionalmente seguidos de um hífen e mais quatro (ZIP+4).

Código postal do Reino Unido

Uma ou duas letras, um dígito, uma letra ou dígito opcional, um espaço opcional e depois um dígito e duas letras.

Verifica só o formato. Aceita alguns códigos que não existem.

Código postal do Canadá

Letra, dígito, letra, espaço opcional, dígito, letra, dígito. As letras D, F, I, O, Q e U nunca são usadas, e W e Z nunca vêm primeiro.

Cor HEX

Um # seguido de 3, 4, 6 ou 8 dígitos hexadecimais (as formas de 4 e 8 incluem transparência).

Senha com caracteres variados

Pelo menos 12 caracteres, com uma letra minúscula, uma maiúscula, um dígito e um símbolo, verificados por lookaheads.

O tamanho importa mais que a mistura. Muitas equipes hoje exigem só um tamanho mínimo e verificam contra listas de senhas vazadas.

Nome de usuário

De 3 a 20 caracteres entre letras e dígitos; pontos e sublinhados só são permitidos entre eles, nunca duplicados.

Endereço IPv4

Quatro números de 0 a 255 separados por pontos, sem zeros à esquerda.

Data ISO 8601 (YYYY-MM-DD)

Ano com quatro dígitos, mês de 01 a 12, dia de 01 a 31.

Aceita 2026-02-31. Faça o parse da data depois para rejeitar dias que não existem.

Hora em 24 horas (HH:MM)

Horas de 00 a 23, dois-pontos, minutos de 00 a 59.

Hora em 12 horas com am ou pm

Horas de 1 a 12, minutos e depois am ou pm com pontos e espaço opcionais.

Número inteiro

Sinal de menos opcional e depois 0 ou um número sem zeros à esquerda.

Número decimal

Um número inteiro com um ponto opcional e pelo menos um dígito depois dele.

Preço com separadores de milhar

Cifrão opcional, dígitos com grupos de vírgula corretos (ou nenhum) e centavos opcionais com dois dígitos.

Porcentagem de 0 a 100

Um número de 0 a 100 com decimais opcionais, seguido de %.

Formato de número de cartão (13 a 19 dígitos)

De 13 a 19 dígitos, opcionalmente agrupados com espaços ou hífens.

Só o formato. Use o algoritmo de Luhn e o seu provedor de pagamentos para validar um cartão.

Versionamento semântico

MAJOR.MINOR.PATCH sem zeros à esquerda, com partes opcionais -prerelease e +build.

UUID

Dígitos hexadecimais no formato 8-4-4-4-12, com um dígito de versão de 1 a 8 e a variante padrão.

Tag HTML simples

Uma tag de abertura, texto sem outras tags e a tag de fechamento correspondente (a referência \1 repete o nome).

Não faça parse de HTML completo com regex. Use DOMParser ou um parser de HTML.

Vazio ou só espaços

Nada além de espaços, tabs ou quebras de linha. Útil para rejeitar campos de formulário vazios.

Hashtag

Um # seguido de letras (de qualquer alfabeto), dígitos ou sublinhados. Exige a flag u para \p{L}.

Endereço de vídeo do YouTube

As formas comuns de watch, embed, shorts e link curto. O grupo 1 captura o ID do vídeo, de 11 caracteres.

Nome de arquivo de imagem

Um nome de arquivo sem caracteres proibidos em caminhos, terminando em uma extensão de imagem comum.

Perfil em rede social (@nome)

Um @ e de 1 a 15 letras, dígitos ou sublinhados, a regra usada pelo X (antigo Twitter).

Palavra repetida

Encontra uma palavra digitada duas vezes seguidas, como 'o o'. Não é ancorado, então busca dentro do texto.

(vazio)

não casa

Copiar

Deve casar

Não deve casar

Teste seu próprio valor

Casa

Não casa

Testador rápido

Padrão

Flags

Texto

Nenhuma correspondência.

na posição {n}:

grupos:

Sintaxe

Flags

{n} padrões testados

Filtrar

email, data, telefone…

Nenhum padrão corresponde a esse filtro.

JavaScript, Python e PHP

Lançado em 2026-10, corrigido em 2026-11, previsto para 2027-02.

Comece grátis · Sem cartão de crédito

Relacionados: Guias

Produto

Para quem é

Recursos

Recursos

Empresa

Mapa do site