Gerador de Regex a partir de um exemplo

Escrever uma regex à mão para um número de pedido, uma referência de nota fiscal ou uma data é trabalhoso e fácil de errar. Cole uma string de exemplo com o formato que você quer reconhecer: esta ferramenta a lê da esquerda para a direita, transforma cada sequência de dígitos, maiúsculas e minúsculas em uma classe de caracteres do tamanho certo e mantém pontuação e símbolos como caracteres literais. Você recebe um padrão ancorado para usar como ponto de partida e refinar à mão.

Como funciona

  1. 1

    Insira um exemplo

    Digite ou cole uma string de exemplo que represente o formato a reconhecer, como `Order #12345 placed on 2026-04-16`.

  2. 2

    Gere o padrão

    A ferramenta percorre o exemplo caractere por caractere e substitui cada sequência do mesmo tipo de caractere por uma classe de caracteres do seu tamanho.

  3. 3

    Leia o detalhamento

    Abaixo do padrão, uma lista de componentes explica cada parte, para você ver qual trecho reconheceu dígitos, letras ou texto literal.

  4. 4

    Copie e refine

    Use o padrão como ponto de partida. Ajuste à mão os comprimentos fixos ou as classes para que ele cubra toda a variação dos seus dados reais.

Como o padrão é construído

A ferramenta lê o exemplo da esquerda para a direita. Sempre que encontra uma sequência do mesmo tipo de caractere, emite uma classe de caracteres do tamanho dessa sequência:

  • uma sequência de dígitos vira \d{n}, em que n é a quantidade de dígitos
  • uma sequência de maiúsculas A-Z vira [A-Z]{n}
  • uma sequência de minúsculas a-z vira [a-z]{n}
  • um único espaço vira \s, e vários espaços viram \s{n}
  • qualquer outra coisa (pontuação, símbolos, letras acentuadas ou não latinas) é mantida como caractere literal escapado

O padrão final é envolvido por ^ e $ para reconhecer a string inteira do início ao fim, e não apenas um trecho.

Exemplo

Para o exemplo Order #12345 placed on 2026-04-16, a ferramenta produz:

/^[A-Z]{1}[a-z]{4}\s\#\d{5}\s[a-z]{6}\s[a-z]{2}\s\d{4}\-\d{2}\-\d{2}$/

Order é uma maiúscula seguida de quatro minúsculas; 12345 vira \d{5}; e a data 2026-04-16 vira \d{4}\-\d{2}\-\d{2}.

O que faz e o que não faz

  • Os comprimentos são fixos. 12345 vira \d{5}, que reconhece exatamente cinco dígitos, não “um ou mais”. Se a quantidade variar nos seus dados, troque {5} por + ou por um intervalo como {3,8} à mão.
  • Trabalha a partir de um único exemplo. Ele espelha a estrutura da única string que você fornece, então não consegue generalizar entre vários exemplos sozinho. Dê a ele a string mais representativa.
  • A-Z e a-z contam como letras. Caracteres acentuados e não latinos são mantidos como literais; troque-os por uma classe como \w ou \p{L} se quiser que reconheçam um conjunto maior.
  • Uma regex não expressa tudo. Coisas como parênteses balanceados estão fora do alcance de qualquer regex, por mais exemplos que você forneça. Para estruturas aninhadas você precisa de um parser, não de um padrão.

Um bom fluxo de trabalho

  1. Gere um padrão a partir de um exemplo claro e representativo.
  2. Afrouxe os comprimentos fixos ({5} vira + ou {3,8}) onde o comprimento varia.
  3. Cole o padrão no Testador de Regex com um conjunto maior de strings reais.
  4. Ajuste até que ele reconheça tudo o que deve e nada do que não deve.

Perguntas frequentes

Um. O gerador lê uma única string de exemplo e espelha sua estrutura. Escolha a string que melhor representa seu formato e depois amplie o padrão à mão para os demais casos.

A ferramenta conta os caracteres exatos do seu exemplo, então cinco dígitos viram \d{5}. Se a quantidade variar nos dados reais, substitua {5} por +, * ou um intervalo como {3,8}.

As âncoras fazem o padrão reconhecer a string inteira do início ao fim. Remova-as se quiser buscar o padrão dentro de um texto mais longo.

Ele reconhece A-Z e a-z como letras. Qualquer outro caractere, incluindo letras acentuadas, cirílicas ou CJK, é mantido como literal. Troque-o à mão por uma classe como \w ou \p{L} se quiser que reconheça mais.

Sintaxe padrão (\d, [A-Z], {n}) que funciona sem alterações em PCRE, JavaScript, Python e na maioria dos motores.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas