◯ Grátis: 5 usos/dia • Redefine em 17h 10m
Desenvolvimento & Técnico

Gerador de Regex

Converta uma descrição em linguagem natural em uma expressão regular funcional para JavaScript, Python, PCRE, Go, Java ou .NET — com explicação token a token, casos de teste e os casos limites que o padrão deliberadamente aceita ou rejeita.

Saiba mais

O Gerador de Regex cria uma expressão regular a partir de uma descrição do que deve corresponder, no sabor que você realmente usa — JavaScript, Python, PCRE, RE2 do Go, Java ou .NET — e então a comprova: cada token é explicado, seus exemplos de strings que devem e não devem corresponder são verificados, e o padrão vem com casos de teste adicionais, um trecho de uso na sua linguagem e uma nota sobre os casos limites que ele exclui deliberadamente. Também informa quando um requisito não pode ser atendido no seu sabor, como look-behind no Go, em vez de gerar silenciosamente um padrão que não compila.

0 / 3000
0 / 10000
0 / 10000

✓ Grátis — sem cadastro e sem cartão de crédito.

Desenvolvedores

Apenas endereços de e‑mail corporativos

Validação de cadastro que rejeita domínios de webmail gratuitos

Ver prévia de entrada e saída

Entrada

O que o padrão deve corresponder?
Email addresses on the company domains acme.com and acme.co.uk, case-insensitive. Reject everything else, including gmail and addresses with nothing before the @.
Sabor da expressão regular
JavaScript / TypeScript
Exemplos que devem corresponder (um por linha)
[email protected] [email protected]
Exemplos que não devem corresponder (um por linha)
[email protected] @acme.com
Rigor
Prático (legível, cobre casos comuns)

Saída (trecho)

```javascript
/^[a-z0-9._%+-]+@acme\.(?:com|co\.uk)$/i
```

**Flags:** `i` — domínios e partes locais são comparados sem distinção entre maiúsculas e minúsculas.

| Token | Significado |
|---|---|
| `^` … `$` | a string inteira deve ser o endereço |
| `[a-z0-9._%+-]+` | parte local: uma ou mais letras, dígitos ou a pontuação comum |
| `@acme\.` | literal @acme. — o ponto está escapado |
| `(?:com\|co\.uk)` | exatamente um dos dois domínios da empresa |

| Entrada | Esperado | Motivo |
|---|---|---|
| `[email protected]` | corresponde | parte local simples, domínio permitido |
| `[email protected]` | corresponde | ponto na parte local, segundo domínio |
| `[email protected]` | não corresponde | domínio não está na lista |
| `@acme.com` | não corresponde | parte local vazia |
| `[email protected]` | não corresponde | ancorado, nada pode seguir |…
Todos os públicos

Datas de calendário ISO 8601

Extrair datas de linhas de log antes de analisá‑las

Ver prévia de entrada e saída

Entrada

O que o padrão deve corresponder?
ISO calendar dates like 2026-09-20 anywhere inside a line of text. Month 01-12, day 01-31. Do not match 2026-13-01 or 26-09-20.
Sabor da expressão regular
Python (re)
Exemplos que devem corresponder (um por linha)
deployed 2026-09-20 at 05:01 2024-02-29
Exemplos que não devem corresponder (um por linha)
2026-13-01 26-09-20
Rigor
Rigoroso (rejeita tudo que é inválido)

Saída (trecho)

```python
r"(?<!\d)(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])(?!\d)"
```

**Flags:** nenhum. O padrão não está ancorado porque a data está dentro de uma linha.

| Token | Significado |
|---|---|
| `(?<!\d)` | não precedido por um dígito — rejeita `12026-09-20` |
| `(\d{4})` | ano de quatro dígitos, capturado |
| `(0[1-9]\|1[0-2])` | mês 01-12 |
| `(0[1-9]\|[12]\d\|3[01])` | dia 01-31 |
| `(?!\d)` | não seguido por um dígito |

**Casos limites:** o padrão não conhece o número de dias dos meses — `2026-02-31` corresponde. Valide com `datetime.date.fromisoformat()` após a extração, como mostra o trecho de uso…

Seus resultados de Gerador de Regex aparecerão aqui

Espere blocos de código limpos com comentários, além de uma breve explicação do que mudou.

Como usar Gerador de Regex

  1. Descreva o que o padrão deve corresponder em linguagem simples, incluindo o que deve rejeitar — 'endereços de e‑mail corporativos, não webmail gratuito' é melhor que 'e‑mails'.
  2. Escolha o sabor em que será executado. Go, JavaScript, Python, Java, .NET e PCRE diferem no suporte a look-around, tratamento de Unicode e escape.
  3. Cole algumas strings que devem corresponder e algumas que não devem, uma por linha. O padrão é verificado contra cada uma delas.
  4. Escolha o rigor: 'Prático' para padrões legíveis que cobrem entradas normais, 'Rigoroso' para validação, 'Flexível' quando captura de forma ampla e filtra depois.

Casos de uso

1

Validar entrada de formulário como CEP, placas de veículos ou formatos de ID internos

2

Extrair datas, números de nota fiscal ou referências de pedido de linhas de log e e‑mails

3

Criar busca e substituição para limpeza em massa em um editor ou script de migração

4

Explicar um padrão legado deixado por um colega no código, colando-o como descrição

5

Converter um padrão de um sabor para outro ao mover um script de Python para Go

Dicas para os melhores resultados

  • Forneça exemplos que não devem corresponder — eles afinam o padrão mais do que os exemplos que devem corresponder.
  • Se precisar inseri‑lo dentro de uma string de linguagem, solicite essa variante: a fuga faz parte da resposta.
  • Para validação voltada ao usuário, escolha 'Strict' e leia a seção de casos‑limite antes de publicar.
  • Um padrão com repetição aninhada em entrada não confiável pode travar seu servidor; a saída avisa quando esse risco existe.

Perguntas frequentes

Quais variantes de regex são suportadas?

JavaScript e TypeScript, módulo re do Python, PCRE (PHP, Ruby, Perl), motor RE2 do Go, Java e .NET. O padrão é escrito como literal na linguagem escolhida, com a fuga que a linguagem requer.

Ele testa o padrão?

Cada exemplo que você fornece é listado em uma tabela de teste com o resultado esperado e a justificativa. A ferramenta também adiciona casos de fronteira — entrada vazia, espaços em branco, quase correspondências — para que você veja o que poderia passar despercebido.

Por que ele diz que minha exigência é impossível no Go?

O motor RE2 do Go garante correspondência em tempo linear e, por isso, não possui look‑ahead, look‑behind ou back‑references. Quando a descrição requer um desses, a ferramenta informa isso e oferece o padrão mais próximo que o RE2 pode compilar, geralmente com uma pequena verificação no código.

Qual é a diferença entre Practical, Strict e Lenient?

Padrões Practical são legíveis e cobrem as entradas que você realmente vê. Padrões Strict rejeitam qualquer string que não seja válida, ao custo de tamanho e legibilidade — use‑os para validação. Padrões Lenient capturam de forma ampla para que você possa filtrar no código depois — use‑os para extração de texto desordenado.

Ele pode explicar um regex que eu já tenho?

Sim. Cole o padrão existente na descrição com 'explain this' e a saída percorre token por token, lista o que ele corresponde e aponta qualquer risco de backtracking catastrófico.

🔒
Sua privacidade está protegida

Guardamos sua entrada e o resultado por até 90 dias para operar o serviço, evitar abusos e, se você estiver conectado, mostrar seu histórico. Eles são processados pelos provedores de IA listados na nossa Política de Privacidade. Não os vendemos.

Ferramentas relacionadas

Testar este agente

Agente de Automação de APIDescreva uma automação em inglês simples → receita REST/webhook → exemplos curl + Python + Node…Testar este agente →

Fluxo relacionado

Construa uma identidade de marcaDo conceito a um sistema visual coerenteExecutar fluxo →

Leia mais