Testador de regex

Teste expressões regulares JavaScript em qualquer string e veja correspondências destacadas em tempo real. Grupos, flags e posições aparecem na lista abaixo.

Usa o RegExp nativo do navegador, então o que você testa aqui é exatamente o que o seu JavaScript vai rodar.

Destacado

Highlighted matches will appear here.

Correspondências

Match list with capture groups will appear here.
Edit the pattern or test string, then press Test (Cmd/Ctrl+Enter).

Sabor JavaScript

Este testador usa o RegExp nativo do navegador. Suporta a sintaxe de regex ECMAScript, que não é a mesma que PCRE (PHP, Perl) ou re do Python. Algumas construções de outros motores não estão disponíveis ou se comportam de forma diferente:

  • No possessive quantifiers (a*+, a++).
  • No atomic groups (?>...).
  • No conditional patterns (?(1)yes|no).
  • Lookbehind (?<=...) is supported in modern browsers but can fail in older engines.
  • Named groups use (?<name>...) (not (?P<name>...) like Python).

Referência de flags

  • g — return all matches, not just the first.
  • i — case-insensitive match.
  • m^ and $ match at line breaks, not only string edges.
  • s — dot . also matches newlines.
  • u — full Unicode mode; \p{...} property escapes enabled.
  • y — sticky: match must start exactly at lastIndex.

Exemplos

Alguns padrões que você pode colar no campo acima para ver funcionando:

\d{4}-\d{2}-\d{2}            # ISO-like dates
[\w.+-]+@[\w-]+\.[\w.-]+     # rough email
^https?:\/\/\S+              # URL at line start (needs m flag)
(?<year>\d{4})-(?<mo>\d{2})  # named groups

Perguntas frequentes

Por que meu padrão que funciona em PHP/Python falha aqui?

Este testador roda seu padrão pelo RegExp do navegador, que é ECMAScript flavor. Recursos exclusivos do PCRE (quantificadores possessivos, grupos atômicos, padrões condicionais) não são suportados. Reescreva o padrão em forma compatível com ECMAScript.

Meu padrão travou a página por um momento. Por quê?

O motor de regex do JavaScript é single-threaded e pode ficar lento com padrões com catastrophic backtracking (por exemplo quantificadores aninhados como (a+)+$). A ferramenta limita a lista de matches a 1000 para reduzir o dano, mas o match em si roda na página.

Como faço match em várias linhas?

Use a flag s se quiser que . também combine com quebras de linha, e a flag m se quiser que ^/$ se ancorem em cada linha.

Meu padrão e texto de teste são enviados para algum lugar?

Não. A regex roda inteiramente no seu navegador. Nada é enviado.

Ferramentas relacionadas