Como transformar um padrão regex em um exemplo de código executável

Digite uma expressão regular, escolha uma das sete linguagens de destino e clique em Gerar código. O painel devolve um programa curto que compila o padrão com a API de regex daquela linguagem e o testa contra uma string de exemplo.

O trecho é montado na página: ao gerar os exemplos nenhuma requisição de rede foi feita durante os testes, então o padrão não sai do navegador e a ferramenta continua funcionando quando a conexão cai.

  1. Digite ou cole o padrão no campo, por exemplo \d{6}, ou comece por um dos onze Padrões rápidos: e-mail, URL HTTP, endereço IPv4, UUID, data ISO, horário de 24 horas, cor hexadecimal, inteiro, número decimal, slug de URL e versão semântica. Um padrão rápido apenas preenche o campo; nada roda até você clicar no botão.
  2. Escolha a linguagem de destino: JavaScript, PHP, Go, Java, Ruby, Python ou C#.
  3. Clique em Gerar código. O exemplo aparece no painel abaixo; Copiar leva o trecho visível para a área de transferência e Limpar esvazia o campo e o painel.

O que o exemplo gerado contém

O que cada destino gera

JavaScript: new RegExp("…") mais pattern.test(text). PHP: preg_match('~…~', $text, $matches) com var_dump do resultado, com o delimitador ~ escapado dentro do padrão para que um til literal mantenha o significado. Go: regexp.Compile com MatchString e o erro de compilação via panic. Java: Pattern.compile e matcher(text).find(). Ruby: Regexp.new('…') e match?. Python: re.compile, search e bool(). C#: uma string literal @"…" com Regex.IsMatch(text, pattern).

Todos os exemplos guardam o texto de teste em uma variável chamada text ($text no PHP) com string vazia, e o padrão é escapado para o literal de string daquela linguagem — barras invertidas, a aspa correspondente e \r ou \n quando a linguagem exige — de modo que padrões como say "hi", a\~b ou a~b cheguem ao motor de destino sem alteração. Cada trecho foi executado com entradas que combinam e que não combinam nesses casos e devolveu o resultado esperado.

Confira antes de colar o trecho no seu projeto

Os exemplos testam uma string vazia, então a maioria imprime um resultado negativo até você trocar text pela sua própria entrada. Nada é validado: um padrão que não compila — uma barra invertida solta, um grupo não fechado — é copiado exatamente como você digitou e falha na linguagem de destino, e flags escritas dentro do padrão (/abc/i) ficam como texto literal em vez de virarem as opções daquela linguagem.

O PHP roda sobre PCRE com o delimitador ~, e o PCRE não tem o escape \uXXXX: para um caractere como é use \x{00E9} com um padrão /u. O Go compila com regexp, que rejeita lookaround e referências inversas, então o programa gerado entra em pânico com padrões que JavaScript ou Python aceitam.

O mesmo padrão não significa a mesma coisa em todo lugar

A ferramenta copia o texto do padrão; ela não o traduz entre motores. Medido com o mesmo padrão em três motores: ^b combina dentro de "a\nb" no Ruby, onde ^ e $ ancoram em linhas, e não combina em JavaScript, Python ou PHP. \d combina com o dígito arábico-índico ٣ no Python, e no PHP apenas com o modificador /u, enquanto Ruby e JavaScript mantêm \d nos dígitos ASCII 0–9. Teste o padrão na linguagem de destino antes de publicá-lo.

Ferramentas recentes: