Expressões regulares (regex) são ferramentas poderosas para correspondência de padrões em texto, mas criá-las corretamente pode ser um desafio. Seja para extrair dados, validar entradas ou procurar estruturas de texto específicas, um pequeno erro na sua regex pode levar a resultados inesperados ou a nenhuma correspondência.
Este Testador de Regex é uma ferramenta online intuitiva projetada especificamente para a sintaxe PCRE (Perl Compatible Regular Expressions) do PHP. Ele permite que você teste rapidamente suas expressões regulares contra qualquer string de entrada, identificando todas as correspondências e seus grupos capturados. Isso ajuda você a depurar, refinar e garantir que seus padrões regex funcionem precisamente como pretendido.
O Testador de Regex serve como um ambiente de testes para qualquer pessoa que trabalhe com expressões regulares em um ambiente PHP. É particularmente útil para desenvolvedores web, analistas de dados, administradores de sistema e criadores de conteúdo que frequentemente precisam pesquisar, extrair ou validar texto com base em padrões complexos. Ao fornecer feedback instantâneo sobre sua regex, a ferramenta elimina suposições e acelera significativamente o processo de desenvolvimento e depuração.
Seu principal propósito é pegar uma expressão regular definida pelo usuário e uma string de texto alvo, e então executar uma operação de correspondência de padrões baseada em PHP. Os resultados mostram claramente quais partes da string de teste correspondem ao padrão, juntamente com quaisquer grupos específicos capturados dentro dessa correspondência. Essa abordagem interativa torna o aprendizado e a aplicação de regex muito mais acessíveis e eficientes.
Como Usar o Testador de Regex: Um Guia Passo a Passo
Usar o Testador de Regex é um processo direto, projetado para iteração rápida e feedback imediato. Siga estes passos para testar suas expressões regulares de forma eficaz:
Passo 1: Insira Sua Expressão Regular
Localize o campo de entrada "Expressão Regular". Aqui, você digitará ou colará seu padrão regex. Certifique-se de que seu padrão esteja devidamente delimitado (por exemplo,
/padrão/). A ferramenta impõe um comprimento máximo de padrão de 500 caracteres para manter o desempenho e a segurança.
Para ajudá-lo, a ferramenta fornece vários padrões regex predefinidos. Clique em qualquer um dos botões a seguir para carregar um padrão comum diretamente no campo de entrada:
- email:
/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}/
- url:
/https?://(?:[a-zA-Z0-9-._~:/?#[]@!$&'()*+,;=%]|&(?!amp;))+/ - telefone:
/+?d{1,3}[-.s]?(?d{3})?[-.s]?d{3}[-.s]?d{4}/
- hex:
/#(?:[0-9a-fA-F]{3}){1,2}b/
- ip:
/b(?:d{1,3}.){3}d{1,3}b/
- data:
/bd{4}-d{2}-d{2}b/
Passo 2: Forneça sua String de Teste
Na área de texto "String de Teste", insira o texto contra o qual você deseja testar sua expressão regular. Este é o conteúdo onde a ferramenta buscará correspondências com base no padrão fornecido. A ferramenta suporta strings de teste de até 10.000 caracteres.
Passo 3: Execute o Teste
Assim que sua expressão regular e sua string de teste forem inseridas, clique no botão "Testar Regex". A ferramenta processará sua entrada e exibirá os resultados abaixo do formulário.
Passo 4: Interprete os Resultados
Após o processamento, a ferramenta apresenta um dos três resultados:
- Mensagem de Erro: Se ocorrer um problema, uma caixa de erro aparecerá. Erros comuns incluem "Sintaxe de expressão regular inválida" (por exemplo, delimitadores ausentes ou um grupo não fechado) ou "Entrada muito grande" se você exceder o limite de 500 caracteres para o padrão ou o limite de 10.000 caracteres para a string de teste.
- Nenhuma Correspondência Encontrada: Se o seu padrão não encontrar nenhuma ocorrência na string de teste, uma mensagem "Nenhuma correspondência encontrada." será exibida.
- Correspondências Encontradas: Se forem encontradas correspondências, a ferramenta relatará o número total de correspondências (por exemplo, "3 correspondências encontradas") e as apresentará em uma tabela detalhada:
| # |
Correspondência |
Grupos |
| 1 |
A string completa correspondida pela regex. |
Lista de strings separadas por vírgulas capturadas por grupos individuais (por exemplo, (grupo1)(grupo2)). Se não houver grupos, exibe '—'. |
Este Testador de Regex utiliza as funções
PCRE (Perl Compatible Regular Expressions) do PHP para suas operações. Isso garante que os padrões que você testa aqui se comportem de forma idêntica a como se comportariam dentro de um script PHP, tornando-o um ambiente confiável para desenvolvimento.
Funções PCRE do PHP
Quando você envia um teste, a ferramenta primeiro executa uma validação básica de sintaxe usando a função `@preg_match($pattern, '')` do PHP. Essa verificação inicial identifica rapidamente padrões malformados antes de tentar uma busca completa. Se a sintaxe for válida, ela então usa `preg_match_all($pattern, $input, $matches, PREG_SET_ORDER)`. Esta função encontra todas as ocorrências do padrão na string de entrada e as armazena no array `$matches`, com cada correspondência (incluindo todos os grupos capturados) como uma entrada separada.
A flag `PREG_SET_ORDER` é crucial aqui; ela garante que cada elemento no array `$matches` represente uma correspondência completa, onde o primeiro item (`$match[0]`) é a string completa correspondida, e os itens subsequentes (`$match[1]`, `$match[2]`, etc.) são as strings capturadas por quaisquer subpadrões (grupos) definidos em sua regex.
Medidas de Desempenho e Segurança
Para fornecer um ambiente de teste estável e seguro, o Testador de Regex incorpora vários mecanismos de segurança:
- Limites de Tamanho de Entrada: Para evitar consumo excessivo de recursos, a ferramenta restringe o comprimento máximo do seu padrão regex a 500 caracteres e da sua string de teste a 10.000 caracteres.
- Prevenção de ReDoS: Ataques de Negação de Serviço por Expressão Regular (ReDoS) exploram certos padrões regex complexos que podem causar tempo de processamento exponencial com entradas específicas. Para mitigar isso, a ferramenta ajusta temporariamente a configuração PCRE do PHP antes de executar seu teste. Ela define `pcre.backtrack_limit` e `pcre.recursion_limit` para `10000`. Esses limites impedem que os padrões consumam ciclos excessivos da CPU, revertendo para seus valores originais após o teste.
Exemplos e Casos de Uso do Mundo Real
O Testador de Regex é inestimável para várias aplicações práticas:
- Extração de Dados: Extraia informações específicas como endereços de e-mail, URLs, números de telefone ou datas de documentos de texto não estruturados ou arquivos de log.
- Validação de Entrada: Garanta que as entradas do usuário (por exemplo, formulários de registro, consultas de pesquisa) estejam em conformidade com os formatos exigidos antes de processá-las em suas aplicações.
- Pesquisa e Substituição de Texto: Localize precisamente padrões de texto complexos que podem ser modificados ou substituídos programaticamente.
- Análise de Arquivos de Log: Analise vastos arquivos de log para identificar códigos de erro, ações específicas do usuário ou eventos do sistema, facilitando o monitoramento e a solução de problemas de sistemas.
- Limpeza de Dados: Padronize formatos de dados (por exemplo, datas, moeda) em grandes conjuntos de dados, identificando e reformatando inconsistências.
Solução de Problemas Comuns de Regex
Embora o Testador de Regex vise simplificar o processo, você ainda pode encontrar problemas. Aqui estão alguns problemas comuns e suas soluções:
- "Sintaxe de expressão regular inválida": Isso geralmente significa que seu padrão está malformado. Verifique novamente se há delimitadores ausentes (por exemplo,
/ no início e no fim), caracteres especiais não escapados, parênteses não fechados ou quantificadores incorretos.
- Nenhuma correspondência encontrada: Se seu padrão estiver sintaticamente correto, mas não produzir correspondências, ele pode ser muito específico, ou sua string de teste pode não conter o texto exato que você espera. Tente simplificar o padrão, verificar erros de digitação na string de teste ou usar uma regex menos restritiva.
- Correspondências ou grupos inesperados: Se os resultados não forem os que você esperava, revise cuidadosamente a lógica do seu padrão. Certifique-se de que seus grupos estejam corretamente definidos e que a ganância/não-ganância (
* vs. *?) seja aplicada conforme o pretendido.
- Entrada muito grande: Se você receber o erro sobre o tamanho da entrada, reduza o comprimento do seu padrão regex para menos de 500 caracteres ou sua string de teste para menos de 10.000 caracteres.
Perguntas Frequentes
P: O que é uma expressão regular?
R: Uma expressão regular, ou regex, é uma sequência de caracteres que define um padrão de pesquisa. É usada principalmente para correspondência de padrões de string, permitindo que os usuários encontrem, substituam ou extraiam partes específicas de texto com base em regras complexas, em vez de strings exatas.
P: Por que devo usar um Testador de Regex?
R: Um Testador de Regex fornece um ambiente interativo para construir e validar seus padrões regex. Ele ajuda a identificar erros de sintaxe, visualizar correspondências e confirmar que suas expressões funcionam conforme o pretendido em vários casos de teste, economizando tempo significativo durante o desenvolvimento e a depuração.
P: Qual sintaxe regex esta ferramenta suporta?
R: Este Testador de Regex suporta a sintaxe PCRE (Perl Compatible Regular Expressions) do PHP. Este é o motor de regex padrão usado em PHP e oferece um rico conjunto de recursos e capacidades para operações complexas de correspondência de padrões.
P: Existem limitações no tamanho da entrada que posso testar?
R: Sim, a ferramenta possui limites internos para desempenho e segurança. Seu padrão de expressão regular não pode exceder 500 caracteres de comprimento, e sua string de teste é limitada a um máximo de 10.000 caracteres.
P: Como esta ferramenta previne ataques de Negação de Serviço por Expressão Regular (ReDoS)?
R: A ferramenta implementa salvaguardas internas definindo
pcre.backtrack_limit e
pcre.recursion_limit do PHP para 10000 durante o teste. Esses limites restringem os recursos computacionais que uma regex complexa ou ineficiente pode consumir, prevenindo potenciais vulnerabilidades de ReDoS.
Conclusão
O Testador de Regex oferece um ambiente robusto e seguro para desenvolver e validar expressões regulares. Ao aproveitar o poderoso motor PCRE do PHP e oferecer resultados claros e estruturados, ele capacita desenvolvedores e profissionais de dados a lidar com tarefas complexas de manipulação de texto com confiança. Utilize sua interface intuitiva, padrões predefinidos e tratamento de erros para otimizar seu fluxo de trabalho de regex.
Comece a testar suas expressões regulares de forma eficiente hoje e desbloqueie todo o potencial da correspondência de padrões para seus projetos.