Anúncios incomodam? Ir Sem anúncios Hoje

Conversor de Sabores Regex (PCRE / JS / Python / Go)

Desenvolvedor
ANUNCIADO Remover?

Painel de Teste

Referência de Sintaxe

ANUNCIADO Remover?

Guia

Conversor de Flavors Regex (PCRE / JS / Python / Go)

Conversor de Flavors Regex

Converta expressões regulares entre flavors de linguagens de programação: PCRE (PHP), JavaScript, Python, Go, Java e Ruby. Converte automaticamente grupos nomeados, flags, referências reversas e outras diferenças de sintaxe. Destaca recursos incompatíveis com avisos claros. Inclui um painel de teste para validar seu regex convertido contra strings de exemplo.

Como usar

Digite seu padrão regex, selecione o flavor de origem (a linguagem para a qual ele foi escrito) e o flavor de destino (a linguagem para a qual você deseja converter). O regex convertido aparece instantaneamente com as flags traduzidas. Verifique as notas de conversão para alterações feitas e avisos sobre recursos não suportados. Use o painel de teste para validar o padrão convertido contra texto de exemplo.

Características

  • 6 Flavors Regex — PCRE (PHP), JavaScript (ES2018+), Python (módulo re), Go (regexp), Java (java.util.regex) e Ruby. Converta entre qualquer par.
  • Conversão de Grupo Nomeado — Converte automaticamente entre a sintaxe (?P…) (PCRE/Python/Go) e (?…) (JS/Java/Ruby).
  • Tradução de Flags — Converte flags entre flavors: /gi (JS) ↔ re.IGNORECASE (Python) ↔ (?i) inline (PCRE/Go) ↔ Pattern.CASE_INSENSITIVE (Java).
  • Conversão de Backreference — Backreferences nomeadas convertidas: (?P=name) ↔ \k entre flavors.
  • Avisos de Incompatibilidade — Alertas codificados por cores: verde para conversões limpas, amarelo para alterações de sintaxe, vermelho para recursos não suportados (ex: Go não suporta lookbehind, JS não suporta grupos atômicos).
  • Painel de Teste — Teste o regex convertido contra strings de exemplo. Mostra correspondências, grupos e contagem de correspondências usando o motor RegExp do JavaScript.
  • Referência de Sintaxe — Tabela de referência colapsável mostrando as principais diferenças entre todos os flavors: grupos nomeados, lookahead/lookbehind, flags, classes de caracteres, grupos atômicos, suporte a Unicode.
  • Auto-Converter — Resultados atualizados instantaneamente enquanto você digita ou altera os flavors.

O que é Convertido

Grupos nomeados: Diferenças de sintaxe (?P) ↔ (?).
Backreferences nomeadas: (?P=name) ↔ \k ↔ \g{name}.
Flags: Inline (?imsx), sufixo /gi e constantes específicas da linguagem.
Asserções Lookbehind: Suportado em PCRE/JS/Java, limitado em Python/Ruby, não suportado em Go.
Grupos atômicos: (?>…) — Apenas PCRE/Java/Ruby; avisado para JS/Python/Go.
Quantificadores possessivos: a++ — Apenas PCRE/Java/Ruby.
Classes de caracteres: \R, \h, \v (específico do PCRE) sinalizados para outros flavors.
Comentários: Sintaxe (?#…) — Apenas PCRE/Python.
Condicionais: (?(cond)yes|no) — Apenas PCRE.

ANUNCIADO Remover?

Por que os flavors de regex diferem entre as linguagens?

As implementações de expressões regulares evoluíram independentemente entre as linguagens de programação. O motor de regex de Perl (PCRE) tornou-se o mais rico em recursos, adicionando grupos nomeados, lookbehind, grupos atômicos e outros recursos avançados. Outras linguagens adotaram subconjuntos: JavaScript inicialmente tinha regex básico e gradualmente adicionou recursos (grupos nomeados em ES2018, lookbehind em ES2018). O módulo re do Python usa a sintaxe (?P) herdada de uma proposta inicial. Go escolheu deliberadamente um motor de regex mais simples (RE2) que garante correspondência em tempo linear, mas sacrifica recursos como lookbehind. Cada linguagem fez diferentes trocas entre poder e desempenho.

Que recursos de regex não podem ser convertidos?

Alguns recursos existem em apenas um ou dois flavors e não têm equivalente em outros. Asserções lookbehind não existem no motor RE2 do Go — não há solução, apenas um redesenho do padrão. Grupos atômicos e quantificadores possessivos (PCRE/Java/Ruby) não têm equivalente direto em JavaScript, Python ou Go. Classes de caracteres específicas do PCRE como \R (qualquer quebra de linha), \h (espaço em branco horizontal) e \v (espaço em branco vertical) precisam ser expandidas para equivalentes de classes de caracteres. Padrões condicionais (?(cond)yes|no) são exclusivos do PCRE. Esta ferramenta avisa sobre essas incompatibilidades para que você saiba o que precisa de atenção manual.

O painel de teste é preciso para todos os flavors?

O painel de teste usa o motor RegExp nativo do JavaScript, portanto, ele testa com precisão o comportamento do RegExp do JavaScript. Para outros flavors de destino, o teste oferece uma aproximação razoável, mas pode diferir em casos extremos — particularmente em relação ao tratamento de Unicode, comportamento de quebra de linha e recursos que o JavaScript não suporta (como grupos atômicos). Para uso em produção, sempre teste seu regex convertido na linguagem de destino real. O painel de teste é mais adequado para validação rápida de correspondência de padrões básicos.

Qual é a diferença entre regex PCRE e JavaScript?

PCRE (Expressões Regulares Compatíveis com Perl, usadas por PHP) é o flavor mais rico em recursos: suporta grupos nomeados com (?P), lookbehind de comprimento variável, grupos atômicos (?>…), quantificadores possessivos (a++), padrões condicionais, padrões recursivos e escopo de flags inline (?i:…). O regex JavaScript é mais simples: grupos nomeados usam (?), lookbehind foi adicionado em ES2018 e não há suporte para grupos atômicos, quantificadores possessivos ou condicionais. PCRE usa a sintaxe /padrão/flags como JavaScript, mas suporta mais flags (x para modo verboso, s para DOTALL). Converter PCRE → JS geralmente requer a remoção de recursos avançados.

Quer eliminar anúncios? Fique sem anúncios hoje mesmo

Instale nossas extensões

Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida

Ao Extensão do Chrome Ao Extensão de Borda Ao Extensão Firefox Ao Extensão Opera

O placar chegou!

Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!

ANUNCIADO Remover?
ANUNCIADO Remover?
ANUNCIADO Remover?

Notícias com destaques técnicos

Envolver-se

Ajude-nos a continuar fornecendo ferramentas gratuitas valiosas

Compre-me um café
ANUNCIADO Remover?