Gerador de Regex

Gerador e testador de regex online gratuito com construtor visual de padrões. Crie, teste e depure expressões regulares facilmente. Inclui biblioteca de padrões, destaque de sintaxe e geração de código.

Library Biblioteca de Padrões
Builder Construtor de Padrões
Digite seu padrão regex ou selecione da biblioteca
/pattern/flags
Components Componentes Rápidos
Clique para inserir componente na posição do cursor
Test Entrada de Teste

Gerador de Regex - Construtor Visual de Expressões Regulares e Testador

Um poderoso gerador e testador de regex online com construtor visual de padrões. Crie, teste e depure expressões regulares com feedback instantâneo. Inclui biblioteca abrangente de padrões, inserção rápida de componentes, destaque de sintaxe, visualização de correspondências e geração de código para JavaScript, Python, PHP, Java, Ruby e Go.

O que são Expressões Regulares?

**Expressões Regulares (Regex)** são ferramentas poderosas de correspondência de padrões usadas para buscar, validar e manipular texto.

**Usos Comuns:**

1. **Validação:**
• Endereços de email
• Números de telefone
• Senhas
• URLs
• Cartões de crédito

2. **Processamento de Texto:**
• Buscar e substituir
• Extração de dados
• Análise de logs
• Limpeza de texto

3. **Validação de Dados:**
• Entradas de formulário
• Parâmetros de API
• Formatos de arquivo
• Arquivos de configuração

**Sintaxe Básica:**

• **Literais:** Casam caracteres exatos
- `abc` casa "abc"

• **Classes de Caracteres:**
- `\d` = dígito (0-9)
- `\w` = caractere de palavra (a-z, A-Z, 0-9, _)
- `\s` = espaço em branco
- `.` = qualquer caractere

• **Quantificadores:**
- `*` = 0 ou mais
- `+` = 1 ou mais
- `?` = 0 ou 1 (opcional)
- `{n}` = exatamente n vezes
- `{n,m}` = entre n e m vezes

• **Âncoras:**
- `^` = início da linha
- `$` = fim da linha
- `\b` = limite de palavra

• **Grupos:**
- `(...)` = grupo de captura
- `(?:...)` = grupo sem captura

• **Conjuntos de Caracteres:**
- `[abc]` = casa a, b ou c
- `[a-z]` = casa qualquer letra minúscula
- `[^abc]` = casa qualquer coisa exceto a, b ou c

**Exemplos:**

```regex
# Validação de email
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$

# Número de telefone (EUA)
^\(?([0-9]{3})\)?[-.\s]?([0-9]{3})[-.\s]?([0-9]{4})$

# URL
^https?:\/\/[\w\-]+(\.[\w\-]+)+[/#?]?.*$

# Senha forte
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
```

Como usar este Gerador de Regex?

**Guia Passo a Passo:**

**1. Escolha um Ponto de Partida:**

**Opção A - Biblioteca de Padrões:**
• Navegue pelos padrões comuns (email, URL, telefone, etc.)
• Clique em um padrão para carregá-lo
• Modifique conforme necessário

**Opção B - Construir do Zero:**
• Digite o padrão diretamente na entrada
• Use Componentes Rápidos para inserir sintaxe
• Clique nos componentes para adicionar na posição do cursor

**2. Defina as Flags:**

• **g (Global):** Encontra todas as correspondências, não apenas a primeira
• **i (Ignorar Maiúsculas):** Ignora maiúsculas/minúsculas (A = a)
• **m (Multilinha):** ^ e $ casam quebras de linha
• **s (Ponto Casa Tudo):** . casa novas linhas

**3. Teste Seu Padrão:**

• Digite texto de teste na área Entrada de Teste
• Clique em "Testar Padrão"
• Veja correspondências destacadas em tempo real
• Veja contagem e posições de correspondências
• Inspecione grupos capturados

**4. Entenda Seu Padrão:**

• Clique em "Explicar Padrão"
• Veja decomposição de cada componente
• Aprenda o que cada símbolo significa
• Entenda a estrutura do padrão

**5. Gere Código:**

• Clique em "Gerar Código"
• Obtenha código pronto para usar em:
- JavaScript
- Python
- PHP
- Java
- Ruby
- Go
• Copie para seu projeto

**Dicas:**

✓ Comece com um exemplo da biblioteca de padrões
✓ Teste com múltiplas variações de entrada
✓ Use Explicar para aprender sintaxe
✓ Teste casos extremos
✓ Mantenha padrões simples quando possível
✓ Use grupos sem captura (?:) para performance
✓ Escape caracteres especiais: \. \* \+ \? etc.

Padrões Regex Comuns e Casos de Uso

**Padrões de Validação:**

**1. Endereço de Email:**
```regex
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
```
• Validação básica de email
• Permite caracteres especiais comuns
• Requer @ e extensão de domínio

**2. URL (HTTP/HTTPS):**
```regex
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)$
```
• Casa URLs web
• Prefixo www opcional
• Suporta query strings e âncoras

**3. Números de Telefone:**
```regex
# Formato EUA
^\(?([0-9]{3})\)?[-.\s]?([0-9]{3})[-.\s]?([0-9]{4})$

# Internacional
^\+?[1-9]\d{1,14}$
```

**4. Senha Forte:**
```regex
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
```
• Mínimo 8 caracteres
• Pelo menos uma letra maiúscula
• Pelo menos uma letra minúscula
• Pelo menos um dígito
• Pelo menos um caractere especial

**Extração de Dados:**

**5. Formatos de Data:**
```regex
# YYYY-MM-DD (ISO)
^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])$

# DD/MM/YYYY
^(?:0[1-9]|[12][0-9]|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$

# MM-DD-YYYY
^(?:0[1-9]|1[0-2])-(?:0[1-9]|[12][0-9]|3[01])-\d{4}$
```

**6. Endereços IP:**
```regex
# IPv4
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$

# IPv6 (simplificado)
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$
```

**7. Cartão de Crédito:**
```regex
# Visa, MasterCard, Amex, Discover
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9][0-9])[0-9]{12})$
```

**Processamento de Texto:**

**8. Extrair Hashtags:**
```regex
#[a-zA-Z0-9_]+
```

**9. Extrair Menções:**
```regex
@[a-zA-Z0-9_]+
```

**10. Tags HTML:**
```regex
<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)
```

**11. Remover Espaços Extras:**
```regex
\s+
# Substituir por espaço único
```

**Padrões de Código:**

**12. Variáveis JavaScript:**
```regex
(var|let|const)\s+([a-zA-Z_$][a-zA-Z0-9_$]*)\s*=
```

**13. Códigos de Cor Hex:**
```regex
^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$
```

**14. Extensões de Arquivo:**
```regex
\.(jpg|jpeg|png|gif|pdf|doc|docx)$
```

**Dicas:**

• Teste padrões com casos extremos
• Use testadores de regex online para depuração
• Considere performance para textos grandes
• Mais simples é geralmente melhor
• Documente padrões complexos

Flags de Regex Explicadas

**Flags de Expressão Regular:**

Flags modificam como o motor de regex processa padrões.

**1. Flag Global (g):**

```javascript
const texto = 'gato pato rato';
const regex1 = /ato/; // Sem global
const regex2 = /ato/g; // Global

texto.match(regex1); // ['ato'] - apenas primeira correspondência
texto.match(regex2); // ['ato', 'ato', 'ato'] - todas as correspondências
```

**Use quando:**
• Encontrar todas as ocorrências
• Substituir todas as instâncias
• Contar correspondências

**2. Flag Ignorar Maiúsculas (i):**

```javascript
const regex1 = /ola/; // Sensível a maiúsculas
const regex2 = /ola/i; // Insensível a maiúsculas

regex1.test('Ola'); // false
regex2.test('Ola'); // true
regex2.test('OLA'); // true
```

**Use quando:**
• Validação de entrada do usuário
• Busca insensível a maiúsculas
• Correspondência flexível

**3. Flag Multilinha (m):**

```javascript
const texto = `linha 1
linha 2
linha 3`;

const regex1 = /^linha/; // Casa início da string
const regex2 = /^linha/m; // Casa início de cada linha

texto.match(regex1); // ['linha'] - uma correspondência
texto.match(regex2); // ['linha', 'linha', 'linha'] - três correspondências
```

**Efeito:**
• `^` casa início de cada linha (não apenas string)
• `$` casa fim de cada linha (não apenas string)

**Use quando:**
• Processar texto multilinha
• Validação linha por linha
• Análise de arquivos de log

**4. Flag Ponto Casa Tudo (s):**

```javascript
const texto = 'ola\nmundo';

const regex1 = /ola.mundo/; // . não casa \n
const regex2 = /ola.mundo/s; // . casa tudo

regex1.test(texto); // false
regex2.test(texto); // true
```

**Efeito:**
• `.` casa caracteres de nova linha
• Normalmente `.` casa qualquer coisa exceto `\n`

**Use quando:**
• Casar entre linhas
• Análise HTML/XML
• Extração de conteúdo multilinha

**Combinações de Flags:**

```javascript
// Múltiplas flags juntas
const regex = /padrao/gim;
// g = global
// i = ignorar maiúsculas
// m = multilinha

// Combinações comuns:
/email/gi // Encontrar todos os emails, qualquer maiúscula
/^erro/gim // Encontrar todas as linhas começando com "erro", qualquer maiúscula
/.*?/gs // Casar tudo entre linhas, preguiçosamente
```

**Flags Específicas de Linguagem:**

**JavaScript:**
```javascript
/padrao/gimsuy
// y = sticky (casa de lastIndex)
// u = unicode (tratamento adequado de unicode)
```

**Python:**
```python
import re
re.IGNORECASE # i
re.MULTILINE # m
re.DOTALL # s
re.VERBOSE # x - ignora espaços, permite comentários
```

**PHP:**
```php
/padrao/gimsx
// x = estendido (ignora espaços)
```

**Melhores Práticas:**

✓ Use apenas flags que precisa
✓ Flag global para operações de substituir/contar
✓ Ignorar maiúsculas para entrada do usuário
✓ Multilinha para processamento de texto
✓ Teste com e sem flags
✓ Documente uso de flags em comentários do código

Técnicas Avançadas de Regex

**1. Lookahead e Lookbehind:**

**Lookahead Positivo (?=...)**
```regex
# Casa 'foo' apenas se seguido por 'bar'
foo(?=bar)

# Casa: 'foo' em 'foobar'
# Não casa: 'foo' em 'foobaz'
```

**Lookahead Negativo (?!...)**
```regex
# Casa 'foo' apenas se NÃO seguido por 'bar'
foo(?!bar)

# Casa: 'foo' em 'foobaz'
# Não casa: 'foo' em 'foobar'
```

**Lookbehind Positivo (?<=...)**
```regex
# Casa 'bar' apenas se precedido por 'foo'
(?<=foo)bar

# Casa: 'bar' em 'foobar'
# Não casa: 'bar' em 'bazbar'
```

**Lookbehind Negativo (?<!...)**
```regex
# Casa 'bar' apenas se NÃO precedido por 'foo'
(?<!foo)bar

# Casa: 'bar' em 'bazbar'
# Não casa: 'bar' em 'foobar'
```

**2. Grupos de Captura:**

```regex
# Extrair partes de uma data
(\d{4})-(\d{2})-(\d{2})

# Casa: '2025-01-15'
# Grupo 1: '2025' (ano)
# Grupo 2: '01' (mês)
# Grupo 3: '15' (dia)
```

**Grupos de Captura Nomeados:**
```regex
(?<ano>\d{4})-(?<mes>\d{2})-(?<dia>\d{2})

# Acesse por nome no código:
# match.groups.ano
# match.groups.mes
# match.groups.dia
```

**Grupos Sem Captura (?:...)**
```regex
# Grupo para alternação, mas não captura
(?:gato|cachorro)s?

# Casa: gato, gatos, cachorro, cachorros
# Não cria grupo de captura
# Melhor performance
```

**3. Referências Retroativas:**

```regex
# Casar palavras repetidas
\b(\w+)\s+\1\b

# Casa: 'o o', 'ola ola'
# \1 refere-se ao primeiro grupo capturado
```

**Casamento de Tags HTML:**
```regex
# Casar tags de abertura e fechamento
<([a-z]+)>.*?</\1>

# Casa: <div>conteudo</div>
# Não casa: <div>conteudo</span>
```

**4. Quantificadores Gananciosos vs Preguiçosos:**

**Ganancioso (padrão):**
```regex
# Casa o máximo possível
<.*>

# Em: '<div>Ola</div> <span>Mundo</span>'
# Casa: '<div>Ola</div> <span>Mundo</span>' (string inteira)
```

**Preguiçoso (adicione ?):**
```regex
# Casa o mínimo possível
<.*?>

# Em: '<div>Ola</div> <span>Mundo</span>'
# Casa: '<div>', '</div>', '<span>', '</span>' (separadamente)
```

**Quantificadores preguiçosos:**
• `*?` = 0 ou mais (preguiçoso)
• `+?` = 1 ou mais (preguiçoso)
• `??` = 0 ou 1 (preguiçoso)
• `{n,m}?` = n a m (preguiçoso)

**5. Grupos Atômicos (?>...)**

```regex
# Prevenir backtracking
(?>\d+)\.

# Mais eficiente para números longos
# Não tenta novamente se ponto decimal não casar
```

**6. Padrões Condicionais:**

```regex
# Se grupo 1 casou, use padrão A, senão padrão B
(\()?[^()]+(?(1)\))

# Casa: 'ola' ou '(ola)'
# Não casa: 'ola)' ou '(ola'
```

**7. Propriedades Unicode:**

```regex
# Casar qualquer letra (qualquer idioma)
\p{L}+

# Casar emoji
\p{Emoji}

# Casar símbolos de moeda
\p{Sc}
```

**Dicas de Performance:**

✓ Use grupos sem captura (?:) quando não precisar capturar
✓ Seja específico (evite .* quando possível)
✓ Use grupos atômicos para prevenir backtracking
✓ Ancore padrões quando possível (^, $, \b)
✓ Teste com entradas grandes
✓ Evite quantificadores aninhados
✓ Use classes de caracteres [abc] ao invés de (a|b|c)

**Armadilhas Comuns:**

❌ Backtracking catastrófico: `(a+)+b`
❌ Muito ganancioso: `.*` casando demais
❌ Âncoras faltando: correspondências parciais
❌ Esquecer de escapar: `. * + ? [ ] ( ) { } ^ $ | \`
❌ Não testar casos extremos

Principais Recursos

  • Interface de construtor visual de padrões
  • Biblioteca abrangente de padrões
  • Padrões regex comuns (email, URL, telefone, etc.)
  • Inserção rápida de componentes
  • Teste de padrão em tempo real
  • Destaque e visualização de correspondências
  • Exibição de grupos capturados
  • Contagem e posições de correspondências
  • Gerador de explicação de padrões
  • Decomposição componente por componente
  • Suporte a flags de regex (g, i, m, s)
  • Geração de código para múltiplas linguagens
  • Saída de código JavaScript
  • Saída de código Python
  • Saída de código PHP
  • Saída de código Java
  • Saída de código Ruby
  • Saída de código Go
  • Destaque de sintaxe
  • Copiar para área de transferência
  • Baixar como arquivo de código
  • Nenhum dado enviado para servidor
  • Funciona offline
  • Interface responsiva para mobile
  • Suporte a modo escuro
  • 100% gratuito
  • Não requer registro