Testador de Expressões Regulares

Teste expressões regulares com destaque de correspondência em tempo real, explicações de tokens e geração de strings de exemplo

/ /
0 correspondências
As correspondências serão destacadas aqui.
Sem correspondências ainda.
  • A explicação do padrão aparecerá aqui.

                

Como usar

Passo 1

Inserir padrão

Digite seu regex e selecione as flags relevantes.

Passo 2

Testar texto ao vivo

Veja correspondências destacadas e grupos de captura em tempo real.

Passo 3

Interpretar e gerar

Revise a explicação do padrão e gere strings de exemplo.

Perguntas frequentes

O testador de regex suporta flags como g, i, m, s e u?

Sim. Pode ativar e desativar as flags global, ignore case, multiline, dotAll, unicode e sticky no testador.

Como funciona a explicação do regex?

O parser lê o seu padrão token a token e gera explicações em linguagem simples para âncoras, classes, grupos e quantificadores.

Posso gerar strings de exemplo a partir de um regex?

Sim. O gerador de exemplos cria uma string representativa usando o seu padrão atual, para que possa verificar rapidamente se corresponde à intenção.

Qual é a diferença entre correspondência greedy e lazy?

Um quantificador greedy como .* consome o máximo possível e depois recua (backtracking); o seu equivalente lazy .*? para na primeira correspondência. No texto say "hi" bye, o padrão "..*" captura a linha inteira, enquanto ".*?" captura apenas hi. O greedy é o comportamento predefinido - acrescente ? para tornar qualquer quantificador lazy.

Como funcionam os grupos de captura e as retroreferências (backreferences)?

Os parênteses capturam: (\d{4})-(\d{2}) aplicado a 2026-09-19 dá grupo 1 = 2026 e grupo 2 = 09, e num padrão de substituição $1 reutiliza o texto capturado. Grupos nomeados como (?<year>\d{4}) tornam padrões complexos mais legíveis. O JavaScript numera os grupos pela ordem do respetivo parêntese de abertura, começando em 1 - o grupo 0 é sempre a correspondência completa.

Quando preciso da flag u (Unicode)?

Adicione u sempre que o padrão ou o texto envolver caracteres não ASCII: faz com que \w e \d sigam as regras Unicode, ativa escapes de propriedade como \p{L} e \p{Script=Arabic}, e trata emoji como caracteres únicos. Sem u, um par surrogate UTF-16 pode ser dividido ao meio por uma correspondência com o ponto.

Como interagem ^, $ e as flags m e s?

Por predefinição, ^ e $ ancoram a string completa e . ignora quebras de linha. A flag m (multiline) faz com que ^ e $ correspondam em cada limite de linha, e a flag s (dotAll) permite que o . atravesse novas linhas. Uma receita comum para análise de logs é usar ambas as flags em conjunto: /error.*timeout/gms.

Que variante de regex usa este testador?

O testador executa o motor JavaScript no seu navegador, pelo que segue a semântica de regex do ECMAScript (ECMA-262) - o mesmo motor que String.prototype.match usa no JS de produção. Tenha em atenção as diferenças em relação ao PCRE ou ao Python: o JavaScript não tem \K nem recursividade, e o lookbehind só chegou no ES2018. Padrões escritos para Perl ou PCRE podem precisar de pequenos ajustes.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}