Toolivaro

Testador de regex grátis

Teste expressões regulares ao vivo contra seu próprio texto, com destaque de correspondências, grupos de captura e flags — tudo local.

O testador de regex valida um padrão e mostra cada correspondência no seu texto enquanto você digita — sem ida e volta a um servidor. Cole ou digite qualquer texto, insira um padrão, alterne as flags padrão (global, ignorar caixa, multilinha, dot-all, unicode, sticky) e a ferramenta lista cada correspondência com sua posição, o texto correspondido e os grupos de captura que ela produziu. Os padrões são compilados com a engine RegExp ECMAScript da plataforma, então o comportamento que você testa aqui é exatamente o que você obtém em JavaScript, Node.js e em todos os navegadores modernos — a ferramenta promete fidelidade à engine, não um dialeto parecido. Padrões malformados retornam a mensagem de erro da plataforma para você corrigi-los rápido, e um limite de segurança na varredura de correspondências impede que padrões patológicos travem a página. Tudo roda localmente no seu navegador: o texto que você cola — trechos de log, configuração, dados pessoais — nunca é enviado, registrado ou armazenado. Use esta ferramenta ao escrever um validador, depurar um parser de log ou antes de confiar em um padrão em código de produção.

Processado localmente no seu navegador

Modificadores

Como usar esta calculadora

Building a pattern the way the engine sees it

A regular expression is a miniature program: the engine walks your text, and at every position it asks whether the pattern matches starting there. The tester makes that walk visible — every match is listed with its position, the exact text it matched, and the capture groups it produced, updated as you type. Start with the literal that must appear (request_id=, say), add the flexible parts around it (a w+ for the value), and check the result against real lines from your data before you trust it anywhere.

The engine here is the platform’s ECMAScript RegExp — the same one JavaScript, Node.js, Deno, and every modern browser use. That is the point of the tool’s fidelity promise: a pattern that matches here matches in your code, and one that fails here will fail there. Dialects like PCRE (PHP, grep, regex101’s default) have features ECMAScript lacks or spells differently — lookbehind syntax, named-group conventions, atomic groups — and the tester rejects them with the platform’s error message rather than pretending to support a dialect it does not run.

Using the flags deliberately

Flags are not decorations — they change what the pattern means. Without g, the engine stops at the first match, and the classic "why does my pattern match once?" confusion is usually a missing g. Without m, the anchors ^ and $ bind to the whole string, not to line boundaries, so a pattern that should match each log line silently matches nothing when the text has multiple lines. The s flag is the one that surprises everyone: . matches every character except line breaks unless s is set, so patterns that should span lines fail on the newline. And the difference between the unicode u and non-unicode modes changes how astral characters like emoji are treated — a point where the ECMAScript engine is stricter than older dialects.

The tester shows the flags you have set at a glance and re-runs the scan on every change, so each flag’s effect is visible the moment you toggle it. That is the fastest way to learn what a flag does: switch it, watch the match list change.

Reading matches, groups, and failures

Each result row shows the matched text, its start position, and its capture groups — the parts of the pattern inside parentheses, which are the values your code will actually consume. The classic use is extraction: with /request_id=(w+)/g against a log line, group 1 holds the id, and the tester shows both matches and their group values before you wire the pattern into a pipeline.

A pattern that matches nothing is a bug report, not a puzzle: the tool shows every match position so the failure is visible at a glance — the pattern matched a different place than you expected, or matched zero times because of a missing flag, a literal space, or an anchor bound to the wrong position. Malformed patterns return the platform’s own error message, which names the position of the problem, so fixing is a matter of reading the message rather than guessing.

Safety and the honest limits

Regular expressions can be pathological: certain patterns take exponential time on certain inputs — the classic "catastrophic backtracking" failure mode — and the tester caps match scanning so a hostile pattern cannot freeze the page. The cap is disclosed; extremely large texts or pathological patterns are truncated with a notice rather than run to completion.

Two things the tool deliberately does not do: it does not judge whether a pattern is efficient enough for production traffic (that is a load-testing question), and it does not claim your pattern is correct in the abstract — it shows what the engine does with your text, which is the only honest answer. And because patterns and pasted text often contain credentials and personal data, everything runs locally: nothing is uploaded, logged, or stored.

Como o resultado é calculado?

Extraindo IDs de linhas de log

Dadas linhas de log como "2026-08-05 09:30 ERROR request_id=7f3a user=ada", o padrão /request_id=(\w+)/g corresponde a cada id de requisição e captura o valor no grupo 1. O testador lista as duas correspondências com posições e seus grupos capturados, para você confirmar o padrão antes de usá-lo em um pipeline de logs.

Exemplo de entrada e saída
Entrada Valor
text 2026-08-05 09:30 ERROR request_id=7f3a user=ada 2026-08-05 09:31 ERROR request_id=9c21 user=bob
pattern request_id=(\w+)
flags g
Resultado 2 correspondências · grupo 1: 7f3a, 9c21

Qual é a fórmula e suas premissas?

Semântica de correspondência

matches = text.scan(pattern, flags)

Termos da fórmula
Símbolo Significado
pattern expressão regular ECMAScript (engine RegExp da plataforma)
flags g (global), i (ignorar caixa), m (multilinha), s (dot-all), u (unicode), y (sticky)

O comportamento é exatamente o da engine da plataforma — o que corresponde aqui corresponde em JavaScript, Node.js e navegadores.

Quais são os erros mais comuns?

  • Testar com a flag g, mas ler apenas o primeiro resultado — com /g, a engine avança por todas as correspondências.
  • Esperar recursos do PCRE (como lookbehind anterior ao ES2018) em um padrão ECMAScript.
  • Esquecer que . não corresponde a quebras de linha a menos que a flag s esteja ativa.
  • Colar padrões ou textos com segredos em um serviço web — esta ferramenta é totalmente local.

Quais são as premissas e limitações?

  • O dialeto é apenas ECMAScript; recursos no estilo PCRE/RE2 que não existem no ECMAScript são rejeitados com o erro da plataforma.
  • A varredura de correspondências tem um limite de segurança; textos extremamente grandes ou padrões patológicos podem ser truncados com um aviso.
  • A ferramenta mostra o que a engine corresponde — ela não avalia se um padrão é eficiente ou seguro para uma carga de produção.

De onde vêm os números?

Última revisão 5 de agosto de 2026 · Versão 1.0.0 · Toolivaro não garante conteúdo externo.

Perguntas frequentes

Qual dialeto de regex esta ferramenta usa?

A engine ECMAScript da plataforma — o mesmo dialeto que JavaScript, Node.js, Deno e navegadores usam. Dialetos como PCRE (PHP, grep, o padrão do regex101) têm recursos extras, como lookbehind em formas diferentes e grupos nomeados com sintaxe diferente; isso não faz parte do ECMAScript.

Por que meu padrão não correspondeu a nada?

Causas comuns: faltar a flag g quando você espera várias correspondências, esquecer que âncoras como ^ e $ só correspondem a limites de linha com a flag m, e padrões que incluem espaços literais sem querer. A ferramenta mostra cada correspondência com sua posição, então a falha costuma ser visível de relance.

Meu texto é enviado a algum lugar?

Não. O padrão e o texto são processados inteiramente na sua aba do navegador — nada é enviado, registrado ou armazenado. Isso importa para trechos de log e arquivos de configuração que frequentemente contêm credenciais ou dados pessoais.

What does the u (unicode) flag actually change?

It switches the engine to strict Unicode mode: astral characters (emoji, rare scripts) are treated as single code points instead of surrogate halves, and some otherwise-lenient syntax becomes an error. Patterns that work without u can behave differently with it — the tester makes the difference visible as you toggle.

Can I use the same pattern in Python or Go?

Not safely — those languages use different engines (Python’s re, Go’s RE2). The fidelity promise here is specifically ECMAScript: what matches here matches in JavaScript, Node.js, Deno, and browsers. Porting a pattern to another language means re-testing it in that language’s tester.

Parte de Kit de ferramentas de texto e JSON para desenvolvedores

Encontrou um erro ou tem uma correção? Informe — revisamos toda correção.

Foi útil?

Revisado pela equipe editorial da Toolivaro conforme nossa metodologia Metodologia · Política editorial