Folha de consulta de regex

Etapa 1 / 3 33%

Escolha uma variante de regex

Comece pelo motor que utiliza. A referência ocultará a sintaxe que não se aplica a essa escolha.

Use esta referência interativa para comparar sintaxe comum de expressões regulares antes de a colar no código. Escolha JavaScript, PCRE2/PHP, Python re, .NET ou a vista de todos os motores, depois um tema e pesquise as entradas apresentadas. A referência assinala a sintaxe própria de cada família, porque um token pode compilar num motor e ser rejeitado ou ter outro significado noutro. A pesquisa e a cópia ocorrem no navegador e esta página não executa padrões no seu texto.

Como usar a folha de consulta de regex

  1. 1

    Escolha um motor

    Comece com JavaScript, PCRE2/PHP, Python re, .NET ou compare todos. A vista focada omite entradas que não se aplicam ao motor escolhido.

  2. 2

    Escolha um tema

    Abra âncoras, classes de caracteres, quantificadores, grupos, lookarounds, formas de padrões comuns ou flags e opções.

  3. 3

    Pesquise e copie localmente

    Pesquise tokens e descrições diretamente na página e selecione um token para o copiar. O texto pesquisado não é enviado ao servidor nem acrescentado ao URL.

  4. 4

    Verifique no runtime real

    Use o motor, as flags e a API do projeto para compilar e testar a expressão final. Esta referência explica sintaxe; não valida dados de produção.

A compatibilidade é importante

Expressões regulares não são uma única linguagem universal. Esta referência separa sintaxe parecida que não passa de forma fiável entre motores.

Função JavaScript RegExp PCRE2 / PHP Python re .NET
Início absoluto Sem \A \A \A \A
Fim absoluto Sem \z \z \Z \z
Propriedade Unicode \p{L} Use modo u ou v Suportada Não no re incorporado Suportada
Captura nomeada (?<name>...) (?<name>...) ou (?P<name>...) (?P<name>...) (?<name>...)
Retroreferência nomeada \k<name> \k<name> ou (?P=name) (?P=name) \k<name>
Correspondência global Flag g e API de correspondência API repetida como preg_match_all API repetida como finditer API repetida como Matches

\d e \w exigem atenção. Em JavaScript, \d continua a ser os algarismos ASCII 0-9 e \w consiste essencialmente em caracteres de palavra ASCII, mesmo com u. Outros motores podem aplicar regras Unicode conforme o modo e a configuração. Se o comportamento Unicode importa, escreva e teste a propriedade ou classe exata necessária.

Âncoras e limites

Token O que exprime Nota de portabilidade
^ Início da entrada ou de uma linha em modo multilinha Disponível nas quatro famílias.
$ Fim da entrada ou de uma linha em modo multilinha Disponível nas quatro; os detalhes de nova linha final variam.
\b Limite de palavra O que conta como carácter de palavra depende do motor e do modo.
\A Início absoluto do texto PCRE2, Python e .NET; não JavaScript.
\z Fim absoluto do texto PCRE2 e .NET; Python usa \Z.
\Z Fim do texto em Python PCRE2 e .NET também podem corresponder antes de uma nova linha final; use \z nesses motores para o fim absoluto.

Grupos e lookarounds

Token Significado Limite importante
(abc) Grupo de captura Disponível nas quatro famílias.
(?:abc) Grupo sem captura Disponível nas quatro famílias.
(?<name>abc) Grupo nomeado Sintaxe de JavaScript, PCRE2 e .NET.
(?P<name>abc) Grupo nomeado Sintaxe de Python; PCRE2 também a aceita.
(?=abc) / (?!abc) Lookahead positivo / negativo Disponível nas quatro famílias.
(?<=abc) / (?<!abc) Lookbehind positivo / negativo Todos suportam, mas as extensões permitidas diferem.

O lookbehind é uma armadilha comum de portabilidade. Python re exige largura fixa. O suporte de JavaScript depende do runtime distribuído; teste o padrão exato no runtime mais antigo que suporta, em vez de depender apenas de uma linha desta folha.

Formas de padrões, não validadores completos

As entradas de padrões comuns descrevem intencionalmente formas. Por exemplo, ^\d{4}-\d{2}-\d{2}$ aceita 2026-99-99, e um padrão simples com forma de e-mail não implementa a norma completa de endereços de e-mail. Depois de uma verificação inicial de formato, analise datas, URLs e identificadores estruturados com a biblioteca adequada.

Forma Padrão de exemplo O que não prova
Decimal com sinal ^-?\d+(?:\.\d+)?$ Marcas decimais regionais, agrupamento, intervalo ou precisão.
Texto com forma de e-mail ^[\w.+-]+@[\w-]+\.[\w.-]+$ Um endereço de e-mail entregável ou conforme à norma.
Texto com forma de URL HTTP(S) ^https?://\S+$ Um URL seguro, analisável ou acessível.
Forma de data ISO ^\d{4}-\d{2}-\d{2}$ Uma data real do calendário.
Caracteres de slug ASCII ^[A-Za-z0-9_-]+$ Regras de maiúsculas, separadores ou palavras reservadas da aplicação.

Flags e opções

Não copie uma flag sem verificar a API anfitriã. JavaScript escreve /pattern/g, Python passa re.I ou re.X, .NET pode usar RegexOptions, e PCRE2/PHP usa habitualmente delimitadores e modificadores finais. g é uma flag JavaScript de correspondência global, não um modificador PCRE2; as correspondências PCRE2 repetidas são normalmente controladas pela API PHP. O modo expandido (x) existe em PCRE2, Python e .NET, mas não como flag JavaScript.

Perguntas frequentes

Não. É uma referência de sintaxe com pesquisa e cópia locais no navegador. Use um testador regex e o runtime da aplicação para compilar padrões e testar entradas representativas.

Alguns tokens familiares não são portáveis. O re incorporado do Python usa, por exemplo, (?P<name>…) para grupos nomeados, JavaScript usa (?<name>…), e JavaScript não suporta as âncoras absolutas \A e \z.

Não. Em JavaScript, \d são algarismos ASCII e \w são essencialmente caracteres de palavra ASCII mesmo com a flag u. Outros motores têm modos e opções Unicode diferentes; teste o comportamento exigido pelos seus dados.

Trate-os apenas como verificações rápidas de forma. Não provam que um e-mail é entregável, que um URL é seguro ou acessível, nem que uma data existe no calendário. Para regras de produção use um analisador ou validador específico.

Ferramentas relacionadas