Exercícios: Aula 15 – Desempenho e Boas Práticas ⚡
Refatorando expressões para torná-las mais eficientes e seguras.
🟢 Nível Básico
1. Otimizando Alternância
Padrão Original: (segunda|terça|quarta|quinta|sexta)
- Tarefa: Se você não precisar extrair o dia da semana depois, apenas verificar se existe, como você transformaria esse grupo para economizar memória?
2. Substituindo o Coringa
Padrão Original: .* (para encontrar um número de 5 dígitos)
- Tarefa: Reescreva esse padrão para ser mais específico e performático.
🟡 Nível Intermediário
3. Proteção contra Ataques (ReDoS)
Padrão Original: (a+)+c
- Tarefa: Analise por que esse padrão é perigoso em textos que contêm muitos 'a's mas não terminam em 'c'. Como você o recreveria de forma simples para pegar uma sequência de letras 'a' seguida de 'c'?
4. Uso de Âncoras para Velocidade
- Tarefa: Explique por que o padrão
^\d{5}$é processado mais rápido por um motor de busca do que\d{5}em uma string que começa com letras.
🔴 Nível Desafio
5. Auditoria de Validador
Imagine o seguinte Regex para validar um nome de pessoa: ^[a-zA-Z\s]*$
- Questões:
- O que acontece se o usuário enviar uma string vazia? (O
*permite isso). - Como você alteraria para exigir ao menos 2 letras?
- Como você limitaria o tamanho máximo para 50 caracteres para evitar processamento abusivo?
- O que acontece se o usuário enviar uma string vazia? (O