Testador de Padrões Regex
Resultados da Correspondência
Digite um padrão e texto de teste para ver os resultados
Salvar Padrão
Resultados da Correspondência
Digite um padrão e texto de teste para ver os resultados
Padrões Salvos
Nenhum padrão salvo ainda
Guia de Símbolos Regex
.
Corresponde a qualquer caractere, exceto nova linha\d
Corresponde a qualquer dígito (0-9)\D
Corresponde a qualquer não dígito\w
Corresponde a qualquer caractere alfanumérico (a-z, A-Z, 0-9, _)\W
Corresponde a qualquer caractere que não é alfanumérico\s
Corresponde a qualquer caractere de espaço em branco\S
Corresponde a qualquer caractere que não é espaço em branco^
Corresponde ao início da linha$
Corresponde ao fim da linha*
Corresponde a 0 ou mais do caractere anterior+
Corresponde a 1 ou mais do caractere anterior?
Corresponde a 0 ou 1 do caractere anterior{n}
Corresponde exatamente a n do caractere anterior{n,}
Corresponde a pelo menos n do caractere anterior{n,m}
Corresponde entre n e m do caractere anterior[abc]
Corresponde a qualquer um dos caracteres entre os colchetes[^abc]
Corresponde a qualquer caractere que não está entre os colchetes(abc)
Agrupa múltiplos tokens e captura a correspondênciaa|b
Corresponde a a ou b\b
Corresponde a uma posição de limite de palavraTestador e Validador de Padrões Regex
Introdução
Um testador de padrões de Expressão Regular (regex) é uma ferramenta essencial para desenvolvedores, analistas de dados e qualquer pessoa que trabalhe com processamento de texto. Este validador abrangente de padrões regex permite que você crie, teste e refine expressões regulares em tempo real, fornecendo feedback visual imediato sobre as correspondências de padrões. Seja validando endereços de e-mail, analisando arquivos de log ou extraindo dados específicos de texto, nosso testador de regex torna o processo de desenvolvimento e depuração mais rápido e intuitivo.
As expressões regulares são sequências poderosas de correspondência de padrões que permitem buscas, validações e manipulações de texto sofisticadas. No entanto, sua sintaxe pode ser complexa e desafiadora de dominar. Este testador de padrões regex simplifica o processo ao destacar correspondências enquanto você digita, validar a sintaxe do padrão e permitir que você salve padrões frequentemente usados para referência futura.
Como Usar o Testador de Padrões Regex
Usar nosso validador de padrões regex é simples e intuitivo. Siga estas etapas para começar:
-
Digite um Padrão de Expressão Regular: Digite seu padrão regex no campo de entrada designado. A ferramenta valida seu padrão em tempo real, alertando você sobre quaisquer erros de sintaxe.
-
Selecione as Flags de Regex: Escolha as flags apropriadas para seu padrão:
g
(Global): Encontre todas as correspondências em vez de parar após a primeira correspondênciai
(Ignorar Maiúsculas): Torne o padrão insensível a maiúsculasm
(Multilinha): Faça com que^
e$
correspondam ao início/fim de cada linha- Várias combinações dessas flags estão disponíveis no menu suspenso
-
Digite o Texto de Teste: Insira o texto que você deseja testar contra seu padrão na área de texto de teste.
-
Veja os Resultados em Tempo Real: À medida que você digita, a ferramenta automaticamente:
- Destaca todas as correspondências de padrões no texto de teste
- Exibe o número total de correspondências encontradas
- Indica se o padrão corresponde ao texto inteiro
-
Salve Padrões Úteis: Para padrões que você usa com frequência:
- Digite um rótulo descritivo para seu padrão
- Clique no botão "Salvar"
- Acesse seus padrões salvos na seção "Padrões Salvos"
-
Copie os Resultados: Use o botão "Copiar Correspondências" para copiar todo o texto correspondente para sua área de transferência para uso em outros aplicativos.
A interface é dividida em dois painéis principais: o painel de entrada onde você insere seu padrão e texto de teste, e o painel de resultados que exibe correspondências e informações sobre o padrão.
Fundamentos de Expressões Regulares
As expressões regulares usam caracteres e sequências especiais para definir padrões de busca. Aqui está um guia para os símbolos regex fundamentais suportados pela nossa ferramenta:
Correspondência de Caracteres
Símbolo | Descrição | Exemplo | Correspondências |
---|---|---|---|
. | Corresponde a qualquer caractere, exceto nova linha | a.c | "abc", "adc", "a1c", etc. |
\d | Corresponde a qualquer dígito (0-9) | \d{3} | "123", "456", "789", etc. |
\D | Corresponde a qualquer não-dígito | \D+ | "abc", "xyz", etc. |
\w | Corresponde a qualquer caractere de palavra (a-z, A-Z, 0-9, _) | \w+ | "abc123", "teste_123", etc. |
\W | Corresponde a qualquer caractere não-palavra | \W+ | "!@#", " + ", etc. |
\s | Corresponde a qualquer caractere de espaço em branco | a\sb | "a b", "a\tb", etc. |
\S | Corresponde a qualquer caractere não-espaço em branco | \S+ | "abc", "123", etc. |
Ancoragens de Posição
Símbolo | Descrição | Exemplo | Correspondências |
---|---|---|---|
^ | Corresponde ao início da linha | ^abc | "abc" no início de uma linha |
$ | Corresponde ao final da linha | abc$ | "abc" no final de uma linha |
\b | Corresponde a uma borda de palavra | \bword\b | "word" como uma palavra completa |
Quantificadores
Símbolo | Descrição | Exemplo | Correspondências |
---|---|---|---|
* | Corresponde a 0 ou mais do caractere anterior | a*b | "b", "ab", "aab", etc. |
+ | Corresponde a 1 ou mais do caractere anterior | a+b | "ab", "aab", "aaab", etc. |
? | Corresponde a 0 ou 1 do caractere anterior | colou?r | "color", "colour" |
{n} | Corresponde exatamente n do caractere anterior | a{3} | "aaa" |
{n,} | Corresponde a pelo menos n do caractere anterior | a{2,} | "aa", "aaa", "aaaa", etc. |
{n,m} | Corresponde entre n e m do caractere anterior | a{2,4} | "aa", "aaa", "aaaa" |
Classes de Caracteres
Símbolo | Descrição | Exemplo | Correspondências |
---|---|---|---|
[abc] | Corresponde a qualquer um dos caracteres entre colchetes | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | Corresponde a qualquer caractere que não esteja entre colchetes | [^aeiou] | Qualquer caractere exceto "a", "e", "i", "o", "u" |
[a-z] | Corresponde a qualquer caractere no intervalo | [a-z] | Qualquer letra minúscula |
Agrupamento e Alternância
Símbolo | Descrição | Exemplo | Correspondências |
---|---|---|---|
(abc) | Agrupa múltiplos tokens e captura a correspondência | (abc)+ | "abc", "abcabc", etc. |
a|b | Corresponde a a ou b | cat|dog | "cat", "dog" |
Padrões Regex Avançados
Uma vez que você tenha dominado o básico, pode criar padrões mais sofisticados para resolver desafios complexos de processamento de texto:
Validação de E-mail
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
Este padrão valida endereços de e-mail, garantindo que sigam o formato padrão: nomedeusuario@dominio.tld.
Validação de URL
^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
Este padrão valida URLs, incluindo aquelas com ou sem o protocolo http/https.
Validação de Número de Telefone (Formato dos EUA)
^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
Este padrão corresponde a números de telefone dos EUA em vários formatos: (123) 456-7890, 123-456-7890 ou 1234567890.
Validação de Data (AAAA-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
Este padrão valida datas no formato AAAA-MM-DD, com validação básica para intervalos de mês e dia.
Lookahead e Lookbehind
Asserções lookahead e lookbehind permitem que você corresponda a padrões apenas se forem seguidos ou precedidos por outro padrão:
- Lookahead positivo:
a(?=b)
corresponde a "a" apenas se for seguido por "b" - Lookahead negativo:
a(?!b)
corresponde a "a" apenas se não for seguido por "b" - Lookbehind positivo:
(?<=a)b
corresponde a "b" apenas se for precedido por "a" - Lookbehind negativo:
(?<!a)b
corresponde a "b" apenas se não for precedido por "a"
Trabalhando com Flags de Regex
Nosso testador regex suporta várias flags que modificam como os padrões são correspondidos:
- g (Global): Encontre todas as correspondências em vez de parar após a primeira correspondência
- i (Ignorar Maiúsculas): Torne o padrão insensível a maiúsculas
- m (Multilinha): Faça com que
^
e$
correspondam ao início/fim de cada linha - Combinações: Você pode combinar flags para requisitos de correspondência mais complexos
Casos de Uso para Teste de Padrões Regex
As expressões regulares têm inúmeras aplicações práticas em diferentes campos:
Desenvolvimento Web
-
Validação de Formulários: Garanta que as entradas do usuário correspondam aos formatos exigidos:
- Endereços de e-mail:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
- Senhas (com requisitos de complexidade):
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
- URLs:
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
- Endereços de e-mail:
-
Análise de HTML: Extraia elementos ou atributos específicos:
- Encontre todas as tags de imagem:
<img[^>]+src="([^">]+)"
- Extraia links:
<a[^>]+href="([^">]+)"
- Encontre todas as tags de imagem:
Processamento de Dados
-
Análise de Arquivos de Log: Extraia informações de entradas de log:
- Endereços IP:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- Carimbos de data/hora:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
- Mensagens de erro:
ERROR: .*
- Endereços IP:
-
Análise de CSV: Processem valores separados por vírgula com campos potencialmente entre aspas:
- Correspondência de campo CSV:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
- Correspondência de campo CSV:
Processamento de Texto
-
Encontrar e Substituir: Identifique padrões para substituição:
- Remover tags HTML:
<[^>]*>
- Formatar números de telefone:
(\d{3})(\d{3})(\d{4})
→($1) $2-$3
- Remover tags HTML:
-
Extração de Conteúdo: Extraia informações específicas de texto não estruturado:
- Extraia datas:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
- Encontre valores monetários:
\$\d+(?:\.\d{2})?
- Extraia datas:
Programação e Codificação
-
Realce de Sintaxe: Identifique construções de linguagem:
- Variáveis JavaScript:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
- Definições de função:
function\s+([a-zA-Z_$][\w$]*)\s*\(
- Variáveis JavaScript:
-
Refatoração de Código: Encontre padrões que precisam ser atualizados:
- Chamadas de API obsoletas:
\.oldMethod\(
- Funções inseguras:
eval\(
- Chamadas de API obsoletas:
Salvando e Gerenciando Padrões
Nosso testador de padrões regex inclui um sistema de gerenciamento de padrões que permite que você salve e reutilize suas expressões frequentemente usadas:
Quando Salvar Padrões
Considere salvar padrões que:
- Você usa com frequência em diferentes projetos
- São complexos e difíceis de lembrar
- Servem a propósitos específicos de validação em seu trabalho
- Você refinou após várias iterações
Melhores Práticas para Rótulos de Padrões
Ao salvar padrões, use rótulos descritivos que:
- Indiquem o propósito do padrão (por exemplo, "Validador de E-mail")
- Mencione formatos específicos (por exemplo, "Número de Telefone dos EUA")
- Inclua informações de versão se você iterar sobre padrões (por exemplo, "Validador de URL v2")
- Sejam concisos, mas informativos
Organização de Padrões
Organize seus padrões salvos por:
- Função (validação, extração, substituição)
- Domínio (desenvolvimento web, processamento de dados)
- Complexidade (básico, avançado)
- Frequência de uso
Compartilhamento de Padrões
Embora nossa ferramenta não suporte diretamente o compartilhamento de padrões entre usuários, você pode:
- Copiar padrões para compartilhar com colegas
- Documentar seus padrões em um repositório compartilhado
- Incluir descrições de padrões na documentação do projeto
Resolvendo Problemas Comuns de Regex
Mesmo desenvolvedores experientes encontram desafios com expressões regulares. Aqui estão soluções para problemas comuns:
Erros de Sintaxe
Se seu padrão mostrar um erro de validação:
- Verifique se há parênteses, colchetes ou chaves não correspondentes
- Certifique-se de que os caracteres especiais estejam corretamente escapados com uma barra invertida
- Verifique se os quantificadores têm um caractere ou grupo anterior
- Procure por sintaxe de classe de caracteres inválida
Problemas de Desempenho
Se seu regex estiver lento ou causar atraso no navegador:
- Evite o uso excessivo de quantificadores aninhados (por exemplo,
(a+)+
) - Tenha cuidado com lookaheads e lookbehinds em textos grandes
- Considere usar padrões mais específicos em vez de amplos
- Quebre padrões complexos em partes menores e mais gerenciáveis
Correspondências Inesperadas
Se seu padrão corresponder a texto indesejado:
- Use âncoras (
^
e$
) para corresponder a strings inteiras - Torne as classes de caracteres mais específicas
- Adicione bordas de palavra (
\b
) onde apropriado - Use lookaheads negativos para excluir certos padrões
Nenhuma Correspondência Encontrada
Se seu padrão não estiver correspondendo ao texto esperado:
- Verifique problemas de sensibilidade a maiúsculas (considere usar a flag
i
) - Verifique se os caracteres especiais estão corretamente escapados
- Teste seu padrão em exemplos simplificados primeiro
- Certifique-se de que você está usando as classes de caracteres corretas
Alternativas às Expressões Regulares
Embora regex seja poderoso, nem sempre é a melhor solução para cada tarefa de processamento de texto:
Métodos de String
Para operações de texto simples, os métodos de string nativos são frequentemente mais claros e eficientes:
String.indexOf()
para encontrar substringsString.startsWith()
eString.endsWith()
para verificar limites de stringString.split()
para tokenização básica
Parsers Especializados
Para formatos de dados estruturados, parsers dedicados são mais robustos:
- Parsers JSON para dados JSON
- Parsers XML/HTML para linguagens de marcação
- Parsers CSV para dados tabulares
Processamento de Linguagem Natural (NLP)
Para entender o significado do texto em vez de apenas padrões:
- Ferramentas de análise de sentimentos
- Reconhecimento de entidades nomeadas
- Marcação de partes do discurso
Quando Escolher Alternativas
Considere alternativas ao regex quando:
- A estrutura do texto é altamente regular e simples
- O formato tem um parser padronizado disponível
- Você precisa entender o significado semântico
- O desempenho é crítico para textos muito grandes
Perguntas Frequentes
O que é uma expressão regular?
Uma expressão regular (regex) é uma sequência de caracteres que define um padrão de busca. Esses padrões podem ser usados para buscas, correspondências e operações de manipulação de texto.
Por que eu preciso de um testador de padrões regex?
Um testador de padrões regex ajuda você a desenvolver e depurar expressões regulares, fornecendo feedback visual imediato sobre correspondências, validando a sintaxe do padrão e permitindo que você experimente diferentes padrões e flags sem precisar implementá-los primeiro no código.
Como eu correspondo a um caractere especial literal como um ponto ou um asterisco?
Para corresponder a caracteres especiais literais que normalmente têm significado especial em regex, você precisa escapá-los com uma barra invertida. Por exemplo, para corresponder a um ponto literal, use \.
em vez de apenas .
.
Qual é a diferença entre .*
e .*?
em um padrão regex?
O .*
é um quantificador ganancioso que corresponde ao maior número possível de caracteres, enquanto .*?
é um quantificador preguiçoso (não ganancioso) que corresponde ao menor número possível de caracteres. Essa distinção é importante quando você deseja encontrar a correspondência mais curta em vez da mais longa.
Posso usar este testador regex para padrões em qualquer linguagem de programação?
Embora a sintaxe básica de regex seja semelhante em muitas linguagens, há sutis diferenças na implementação. Nosso testador usa o mecanismo de regex do JavaScript, que é compatível com muitas linguagens da web, mas pode ter diferenças em relação ao regex em linguagens como Python, Java ou Perl.
Como eu valido uma string inteira com regex?
Para validar que uma string inteira corresponde a um padrão, use a âncora ^
no início e a âncora $
no final do seu regex. Por exemplo, ^[0-9]+$
corresponderá apenas a strings que consistem inteiramente de dígitos.
O que são grupos de captura e como eu os uso?
Grupos de captura, criados com parênteses ()
, permitem que você extraia porções específicas do texto correspondente. Em nosso testador, você pode ver todas as correspondências, incluindo grupos capturados. Em linguagens de programação, você pode acessar essas capturas normalmente indexando o resultado da correspondência.
Como posso tornar meus padrões regex mais eficientes?
Para melhorar a eficiência do regex: seja específico com classes de caracteres, evite grupos de captura desnecessários (use grupos não capturantes (?:...)
quando possível), limite o uso de lookaheads/lookbehinds, e evite padrões de retrocesso catastrófico, como quantificadores aninhados.
Quais são os erros mais comuns de regex a evitar?
Erros comuns incluem: não escapar caracteres especiais, criar padrões que são muito gananciosos, esquecer de ancorar padrões (com ^
e $
), e escrever expressões excessivamente complexas que são difíceis de manter.
O regex pode lidar com estruturas aninhadas como HTML?
As expressões regulares não são bem adequadas para analisar estruturas aninhadas como HTML ou XML. Embora você possa criar padrões regex para correspondência simples de HTML, geralmente é melhor usar um parser HTML dedicado para processamento complexo de HTML.
Referências
- Friedl, J. E. F. (2006). Mastering Regular Expressions. O'Reilly Media.
- Goyvaerts, J., & Levithan, S. (2012). Regular Expressions Cookbook. O'Reilly Media.
- "Expressão regular." Wikipedia, Wikimedia Foundation, https://pt.wikipedia.org/wiki/Express%C3%A3o_regular
- MDN Web Docs. "Expressões Regulares." Mozilla, https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Guide/Regular_Expressions
- RegExr: Aprenda, Crie e Teste RegEx. https://regexr.com/
Experimente nosso testador de padrões regex hoje para simplificar suas tarefas de processamento de texto, validar formatos de entrada e extrair dados significativos de texto não estruturado. Seja você um iniciante aprendendo o básico das expressões regulares ou um desenvolvedor experiente trabalhando em correspondência de padrões complexos, nossa ferramenta fornece os recursos que você precisa para criar, testar e refinar seus padrões regex de forma eficiente.