O que você precisa decidir antes do padrão
Em Java, Pattern representa a expressão compilada e Matcher executa buscas/capturas. Strings Java também adicionam uma camada de escape ao padrão.
Pense no problema antes de escrever Regex
Um padrão fica mais simples quando a regra já está clara. Para este caso, siga esta sequência:
- 01Compile Pattern quando o mesmo padrão será reutilizado.
- 02Escolha matches() para correspondência do texto inteiro e find() para procurar trechos.
- 03Use grupos nomeados em padrões maiores para deixar o código de extração mais legível.
Pattern e Matcher
Pattern pattern = Pattern.compile("^DEV-\\d{4}$");
Matcher matcher = pattern.matcher("DEV-2026");
boolean ok = matcher.matches();matches() tenta casar a entrada inteira. Para procurar trechos, use find().
Por que Java usa \\d na string
A Regex precisa receber \d, mas a própria string Java interpreta a barra invertida. Por isso o código-fonte escreve "\\d".
find() para ocorrências
Pattern p = Pattern.compile("\\b\\d+\\b");
Matcher m = p.matcher("Pedidos 123 e 999");
while (m.find()) {
System.out.println(m.group());
}Grupos e grupos nomeados
Pattern p = Pattern.compile("(?<ddd>\\d{2})-(?<numero>\\d+)");
Matcher m = p.matcher("71-999991234");
if (m.matches()) {
System.out.println(m.group("ddd"));
}Grupos nomeados tornam o código mais fácil de manter do que depender apenas de índices.
Compile padrões reutilizados
Se um padrão é constante e usado muitas vezes, mantenha um static final Pattern em vez de recompilá-lo a cada chamada.
Como ler o padrão em partes
Em vez de memorizar a expressão inteira, leia cada bloco pela responsabilidade que ele cumpre:
Pattern.compile(...)compila a expressão e pode receber flags.matcher.matches()tenta casar o input inteiro, diferente de procurar uma ocorrência qualquer.matcher.find()avança pelas ocorrências encontradas no texto.\\dna string Java representa o texto \d que será interpretado pelo motor de Regex.Onde Regex agrega valor aqui
Use Pattern/Matcher para validações, extrações e transformações textuais. Mantenha padrões importantes centralizados e testados.
Erros comuns
- Copiar uma Regex de um testador para uma string Java sem ajustar escapes.
- Confundir matches() com find().
- Compilar repetidamente o mesmo Pattern em loops de alto volume.
- Usar grupos numerados difíceis de manter quando grupos nomeados seriam mais claros.
Teste e pratique
Use o Playground para experimentar o padrão com seus próprios dados e depois leve o conceito para as fases do jogo, onde os casos positivos e negativos são avaliados automaticamente.