O que são e como funcionam as expressões regulares em Java?
As expressões regulares, também conhecidas como regex, são padrões utilizados para realizar buscas, validações e manipulações avançadas em strings. Em Java, essas expressões são suportadas pela API java.util.regex
.
1. Como Criar Expressões Regulares em Java
Em Java, utilizamos as classes Pattern
e Matcher
para trabalhar com regex.
import java.util.regex.*;
public class TesteRegex {
public static void main(String[] args) {
String texto = "Java é incrível!";
Pattern padrao = Pattern.compile("Java");
Matcher matcher = padrao.matcher(texto);
if (matcher.find()) {
System.out.println("Texto contém 'Java'");
}
}
}
Saída esperada:
Texto contém 'Java'
Aqui, Pattern.compile("Java")
cria um padrão que busca a palavra "Java" dentro do texto.
2. Principais Metacaracteres em Expressões Regulares
Símbolo | Significado |
---|---|
. |
Qualquer caractere |
\d |
Dígitos de 0 a 9 |
\w |
Letras e números (A-Z, a-z, 0-9, _) |
\s |
Qualquer espaço em branco |
^ |
Início da string |
$ |
Fim da string |
* |
Zero ou mais ocorrências |
+ |
Uma ou mais ocorrências |
{n} |
Exatamente n repetições |
[abc] |
Qualquer caractere dentro do grupo |
3. Verificando Padrões com matches()
Podemos verificar se uma string corresponde a um padrão usando matches()
.
public class TesteMatches {
public static void main(String[] args) {
String email = "usuario@email.com";
boolean valido = email.matches("\\w+@\\w+\\.com");
System.out.println("Email válido? " + valido);
}
}
Saída esperada:
Email válido? true
O regex \w+@\w+\.com
exige que a string tenha um formato típico de email.
4. Substituindo Texto com Expressões Regulares
O método replaceAll()
permite modificar partes de uma string usando regex.
public class TesteReplaceRegex {
public static void main(String[] args) {
String texto = "O preço é R$ 1.000,00";
String apenasNumeros = texto.replaceAll("\\D", "");
System.out.println(apenasNumeros);
}
}
Saída esperada:
100000
Aqui, \D
remove todos os caracteres que não são números.
5. Extraindo Informações com find()
Podemos encontrar padrões dentro de um texto utilizando find()
.
public class TesteFind {
public static void main(String[] args) {
String texto = "ID: 12345";
Pattern pattern = Pattern.compile("\\d+");
Matcher matcher = pattern.matcher(texto);
if (matcher.find()) {
System.out.println("Número encontrado: " + matcher.group());
}
}
}
Saída esperada:
Número encontrado: 12345
6. Quando Usar Expressões Regulares?
- Validação de entradas (emails, telefones, senhas)
- Extração de informações de textos e logs
- Substituição e limpeza de strings
Conclusão
As expressões regulares são ferramentas poderosas para manipulação de strings em Java. Com a API java.util.regex
, podemos validar, buscar e substituir textos de maneira eficiente, tornando os processos de tratamento de dados mais ágeis.
Por que expressões regulares são essenciais para desenvolvedores Java?
O uso de expressões regulares vai muito além da programação básica. Em sistemas de análise de logs, buscas avançadas e filtros de segurança, regex desempenha um papel fundamental. Frameworks como Spring Boot utilizam expressões regulares para validação de entradas em formulários, e sistemas de web scraping dependem desse recurso para extração de dados estruturados. Dominar regex permite escrever código mais eficiente e flexível.
Algumas aplicações:
- Validação de emails, senhas e números de telefone
- Extração de dados em arquivos de log
- Filtragem de palavras-chave em textos
- Substituição de caracteres indesejados em strings
Dicas para quem está começando
- Aprenda os metacaracteres básicos como
\d
,\w
e.
- Teste suas expressões regulares em ferramentas online como regex101.com
- Use
Pattern
eMatcher
para buscas mais avançadas - Experimente
replaceAll()
para limpar ou substituir padrões em strings - Evite expressões muito complexas para não comprometer a performance
Contribuições de Rodrigo Farias