Testador Regex: Teste Padrões com Correspondências
Testador regex: depure expressões regulares com destaque de correspondências ao vivo, grupos de captura e suporte a todas as flags regex.
O que é o Testador Regex?
O Testador Regex é uma ferramenta gratuita baseada em navegador para escrever, testar e depurar expressões regulares com feedback em tempo real. Ele resolve o problema central do desenvolvimento regex: você não pode saber se um padrão está correto até testá-lo contra texto real, e o ciclo de editar-executar-verificar na maioria dos ambientes é lento e fragmentado.
Digite um padrão e ele é avaliado instantaneamente. As correspondências são destacadas diretamente em sua string de teste, os grupos de captura são extraídos e rotulados, as posições de caracteres são reportadas para cada correspondência, e um modo de substituição permite pré-visualizar substituições antes de colocá-las no código de produção. Todas as seis flags JavaScript são suportadas. Uma biblioteca de 49 padrões pré-construídos organizados por categoria está disponível para necessidades comuns de validação. A ferramenta funciona inteiramente no navegador — seus padrões e dados de teste nunca são enviados a nenhum lugar.
Funcionalidades principais
- Correspondência ao vivo ao digitar: As correspondências são recalculadas a cada tecla pressionada usando o motor nativo
RegExpdo JavaScript. O painel de resultados é atualizado sem nenhum clique de botão. - Todas as flags regex JavaScript (g, i, m, s, u, y): Cada flag é uma caixa de seleção rotulada: global, sem distinção de maiúsculas, multilinha, dotAll, unicode e sticky. As flags ativas são exibidas ao vivo ao lado do campo de entrada do padrão, espelhando a notação
/padrão/flagsusada em código fonte JavaScript. - Destaque de correspondências na string de teste: O painel Correspondências Destacadas renderiza sua string de teste com cada correspondência envolvida em um elemento
<mark>estilizado com um fundo de cor primária. O texto sem correspondência aparece sem estilo. O painel mostra uma contagem de correspondências ao vivo. - Extração de grupos de captura: O painel Detalhes de Correspondências aparece quando há correspondências. Cada entrada de correspondência mostra o texto completo da correspondência, suas posições de início e fim, e uma lista rotulada de grupos de captura (
$1,$2, etc.). Grupos sem conteúdo são rotulados como "vazio". - Contagem e posições de correspondências: Cada entrada de correspondência no painel de detalhes mostra o
indexexato eindex + match.length, que correspondem diretamente à propriedadeindexdeRegExpExecArraydo JavaScript. - Modo de substituição com substituição: Uma seção de substituição alternável aceita uma string de substituição e mostra o resultado completo da substituição. Suporta retrorreferências (
$1,$2). O resultado pode ser copiado para a área de transferência. - Biblioteca de padrões regex comuns: Uma biblioteca de padrões pesquisável com 49 padrões em 8 categorias: Validação, Datas e Horas, Números, Web e Rede, Arquivos e Caminhos, Código, Texto e Identificadores. Clicar em "Use Pattern" carrega-o no campo de entrada do padrão.
Como usar o Testador Regex
Passo 1: Inserir o padrão
Digite sua expressão regular no campo de entrada do padrão. O campo é exibido com delimitadores / de cada lado para indicar visualmente o formato regex. Você não inclui as barras no que digita — apenas o corpo do padrão.
Se seu padrão tiver um erro de sintaxe (como um grupo não fechado ou uma sequência de escape inválida), uma mensagem de erro aparece imediatamente em vermelho abaixo do campo de entrada, com o texto exato do erro do construtor RegExp do JavaScript. Você não pode executar um padrão com erro, mas a mensagem de erro identifica precisamente o que está errado.
Passo 2: Configurar as flags
Abaixo do campo de entrada do padrão há seis caixas de seleção de flags. Por padrão, a flag g (global) está habilitada. Alterne as flags clicando em suas caixas de seleção:
g(global): encontrar todas as correspondências, não apenas a primeirai(sem distinção de maiúsculas): tratar maiúsculas e minúsculas como equivalentesm(multilinha): fazer^e$corresponderem ao início e fim de cada linha, não apenas de toda a strings(dotAll): fazer.corresponder a caracteres de nova linha além de todos os outrosu(unicode): habilitar suporte Unicode completo; necessário para padrões que usam escapes de propriedade Unicode\p{}y(sticky): corresponder apenas na posição atual na string (lastIndex), sem buscar adiante
A string de flags ativas é exibida ao vivo ao lado do campo do padrão, então gi apareceria se global e sem distinção de maiúsculas estiverem marcados.
Passo 3: Inserir a string de teste
Cole ou digite o texto contra o qual você quer corresponder no painel String de Teste. A contagem de caracteres da string de teste é exibida no cabeçalho do painel. A área de texto aceita entrada multilinha e redimensiona verticalmente.
Passo 4: Ler os resultados das correspondências
O painel Correspondências Destacadas à direita é atualizado instantaneamente. Cada porção da string de teste que corresponde ao seu padrão é destacada. O cabeçalho do painel mostra a contagem total de correspondências.
Abaixo dos dois painéis principais, uma seção Detalhes de Correspondências aparece listando cada correspondência individualmente:
- Número da correspondência (indexado a partir de 1)
- O texto correspondente, exibido em um bloco de código destacado
- Posições de caracteres: índice de início e índice de fim
- Grupos de captura, rotulados como
$1,$2, etc.
Passo 5: Usar o modo de substituição (opcional)
Clique no botão "Show Replace" para abrir a seção de substituição. Insira uma string de substituição no campo Replace With. As retrorreferências funcionam: $1 insere o conteúdo do primeiro grupo de captura, $2 o segundo, e assim por diante. O painel Resultado é atualizado imediatamente mostrando o resultado completo da substituição. Clique no ícone de cópia para copiar o resultado.
Passo 6: Usar a biblioteca de padrões (opcional)
Clique no botão "Pattern Library" para abrir o painel de padrões pesquisável. Digite na caixa de pesquisa para filtrar por nome, descrição ou categoria. Clique em "Use Pattern" ao lado de qualquer entrada para carregá-lo diretamente no campo do padrão. A biblioteca fecha automaticamente após a seleção.
Exemplos práticos
Exemplo 1: Validar endereços de email
Padrão: ^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$
Flags: g
String de teste:
user@example.com
invalid-email
another@test.co.uk
@missing-local.com
Resultado: Duas correspondências — user@example.com e another@test.co.uk são destacadas. As outras duas linhas não produzem correspondências.
Exemplo 2: Extrair grupos de captura de linhas de log
Padrão: (\d{4}-\d{2}-\d{2}) (\w+): (.+)
Flags: gm
String de teste:
2026-02-28 ERROR: Connection timeout after 30s
2026-02-27 INFO: Server started on port 3000
Detalhes da Correspondência 1:
- Correspondência completa:
2026-02-28 ERROR: Connection timeout after 30s $1:2026-02-28$2:ERROR$3:Connection timeout after 30s
Exemplo 3: Substituição com retrorreferências de grupos de captura
Padrão: (\w+)\s(\w+) Substituir com: $2, $1 String de teste: John Smith Resultado: Smith, John
Isso demonstra o modo de substituição usando $1 e $2 para trocar a ordem de dois grupos de palavras capturados.
Dicas e boas práticas
Ative a flag global para testes abrangentes. Com g desativado, a correspondência para após o primeiro resultado. Durante o desenvolvimento você normalmente quer g habilitado para ver todas as correspondências potenciais em sua string de teste e verificar se não há correspondências adicionais inesperadas.
Use a flag m (multilinha) quando seu padrão usa ^ ou $. Sem m, ^ corresponde apenas ao início de toda a string de entrada e $ apenas ao fim. Com m, eles correspondem ao início e fim de cada linha, o que é quase sempre o que você quer ao processar entrada multilinha.
A proteção contra correspondências de comprimento zero está integrada. Quando a flag global está ativa, o loop de correspondência verifica correspondências de comprimento zero e incrementa lastIndex para evitar um loop infinito. Isso significa que padrões como a* ou \b não travará o navegador.
Copie o padrão em notação /padrão/flags. O botão Copy Pattern escreve o padrão completo na área de transferência em notação JavaScript, incluindo as barras e as flags ativas — por exemplo /\d{4}-\d{2}-\d{2}/gm. Você pode colar isso diretamente no código fonte JavaScript.
Salve padrões em Snippets. O botão Save to Snippets (visível ao lado de Copy Pattern) armazena seu padrão atual — no formato /padrão/flags — na biblioteca de Snippets disponível através dos recursos de supporter do Glyph Widgets. Isso é mais durável do que depender apenas do histórico de sessão.
Problemas comuns e solução de problemas
O padrão mostra uma mensagem de erro vermelha. O texto do erro vem diretamente do construtor RegExp do JavaScript e descreve o que deu errado. Os erros comuns incluem Invalid regular expression: missing ) (grupo de captura não fechado) e Invalid escape (uma barra invertida seguida de um caractere que não é uma sequência de escape válida sem a flag u). Leia a mensagem de erro literalmente — ela especifica o problema.
As correspondências esperadas não são destacadas. Verifique se você precisa da flag i para correspondência sem distinção de maiúsculas, ou da flag m se seu padrão usa ^ ou $ em entrada multilinha. Também verifique se o padrão não está ancorado muito rigidamente — ^\d+$ corresponde apenas a uma linha contendo apenas dígitos, não dígitos incorporados em outro texto.
Os grupos de captura mostram "vazio". Um grupo de captura é "vazio" quando o grupo participa da correspondência, mas o subpadrão correspondeu a zero caracteres, ou quando um grupo opcional ((...)?) não participou. Isso é distinto de um grupo que não estava no padrão.
A substituição não usa retrorreferências. As retrorreferências na string de substituição usam a sintaxe $1, $2, $n. Usar \1 ou %1 não funcionará — eles não são válidos em String.prototype.replace do JavaScript. Grupos nomeados usam a sintaxe $<nome>.
O padrão carrega da biblioteca mas não corresponde. Alguns padrões da biblioteca incluem âncoras (^ e $) e são projetados para validação de string inteira, não para correspondência de substring dentro de uma string de teste maior. Se você está pesquisando o padrão dentro de um parágrafo, remova as âncoras ou adicione g sem m para ver se o padrão central corresponde.
Privacidade e segurança
Toda a avaliação de expressões regulares no Testador Regex é executada em seu navegador usando o motor nativo RegExp do JavaScript. Nenhum padrão, nenhuma string de teste e nenhum resultado de correspondência são transmitidos a qualquer servidor. O recurso de URL compartilhável codifica seu padrão e string de teste na própria URL (somente do lado do cliente), portanto compartilhar um link não envolve uma ida e volta ao servidor. A ferramenta funciona offline após o carregamento inicial da página.
Perguntas frequentes
O Testador Regex é gratuito? Sim, completamente gratuito sem conta, sem cadastro e sem limites de uso.
Meus dados estão seguros? Seus padrões e strings de teste nunca saem do seu navegador. Todo o matching é executado localmente usando o RegExp integrado do JavaScript. A ferramenta não tem componente do lado do servidor envolvido no processo de matching.
Posso usá-lo offline? Sim. Uma vez que a página é carregada, toda a ferramenta funciona sem conexão com a internet. A biblioteca de padrões, o motor de matching e o modo de substituição funcionam todos localmente.
Qual dialeto regex ele usa? A ferramenta usa o motor nativo RegExp do JavaScript, que implementa a especificação de expressão regular ECMAScript. Isso suporta a maioria da sintaxe regex comum, incluindo lookaheads, lookbehinds (em JS moderno), grupos de captura, grupos de não captura, retrorreferências e escapes de propriedade Unicode (com a flag u).
Suporta lookaheads e lookbehinds? Sim. Lookaheads positivos (?=...), lookaheads negativos (?!...), lookbehinds positivos (?<=...) e lookbehinds negativos (?<!...) são todos suportados pelo motor JavaScript usado aqui, pois fazem parte da especificação ECMAScript 2018 e são suportados por todos os navegadores modernos.
Posso compartilhar meu padrão com alguém? Sim. A ferramenta usa um estado compartilhável que codifica seu padrão, string de teste e flags na URL. Copie a URL da barra de endereços do seu navegador e compartilhe. Quando o destinatário abre o link, uma notificação toast informa que o estado foi carregado de uma URL compartilhada.
Quantos padrões há na biblioteca? A biblioteca contém 49 padrões organizados em 8 categorias: Validação (10 padrões incluindo email, URL, telefone, UUID, senha), Datas e Horas (5 padrões), Números (5 padrões), Web e Rede (6 padrões), Arquivos e Caminhos (5 padrões), Código (6 padrões), Texto (7 padrões) e Identificadores (5 padrões incluindo cartão de crédito, SSN, IBAN, ISBN-13 e IMEI).
Qual é a diferença entre as flags s (dotAll) e m (multilinha)? Elas afetam coisas diferentes. A flag s faz . corresponder a quebras de linha além de todos os outros caracteres. Sem ela, . ignora caracteres de nova linha. A flag m faz ^ e $ corresponderem ao início e fim de cada linha em vez de toda a string. Elas são independentes — você pode habilitar uma, ambas ou nenhuma.
Posso usar escapes de propriedade Unicode como \p{Letter}? Sim, mas a flag u deve estar habilitada. Com u ativo, padrões como \p{Lu} (letra maiúscula) e \p{Script=Latin} são suportados por navegadores modernos. Sem u, a sequência \p é tratada como um p literal.
Como faço correspondência em múltiplas linhas? Habilite a flag s (dotAll) para que . corresponda a quebras de linha, depois use [\s\S]*? ou simplesmente .+ com s ativo. Habilite também m se precisar que ^ e $ ancorem ao início e fim das linhas.
Ferramentas relacionadas
- JSON Formatter — Formate JSON para usar como strings de teste regex
- Base64 Encoder/Decoder — Codifique/decodifique texto contra o qual precisa aplicar regex
- Diff Checker — Compare texto original e substituído lado a lado
Experimente o Testador Regex agora: Testador Regex