Expressões Regulares em Java com Exemplos: para Iniciantes

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Expressões Regulares em Java: Guia Completo para Iniciantes



Expressões regulares (regex) são uma ferramenta poderosa para buscar, extrair e substituir texto com base em padrões. Em Java, o trabalho com expressões regulares é implementado através do pacote java.util.regex. Neste artigo, vamos abordar os fundamentos das expressões regulares em Java, aprender a usar as classes Pattern e Matcher, e também ver exemplos práticos.



1. Classes Principais para Trabalhar com Regex em Java



Em Java, duas classes principais são usadas para trabalhar com expressões regulares:



  • Pattern — representa uma expressão regular compilada.
  • Matcher — realiza operações de busca e correspondência com o texto.


Existe também o método conveniente String.matches(), que permite verificar rapidamente se uma string corresponde a um padrão, mas é menos flexível.



Exemplo 1: Correspondência Simples



import java.util.regex.*;

public class RegexExample1 { public static void main(String[] args) { String text = "Olá, mundo! Java é a melhor linguagem."; String pattern = "Java";

Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text);

if (m.find()) { System.out.println("Palavra encontrada: " + m.group()); } else { System.out.println("Nenhuma correspondência"); } }}


Saída: Palavra encontrada: Java



2. Metacaracteres e Classes de Caracteres



Expressões regulares usam caracteres especiais (metacaracteres) para descrever padrões:



  • . — qualquer caractere (exceto quebra de linha)
  • \\d — dígito [0-9]
  • \\D — não dígito
  • \\w — letra, dígito ou sublinhado [a-zA-Z0-9_]
  • \\W — não palavra
  • \\s — caractere de espaço em branco
  • \\S — caractere não espaço em branco
  • [abc] — um dos caracteres a, b ou c
  • [^abc] — qualquer caractere exceto a, b, c


Exemplo 2: Busca por Dígitos no Texto



import java.util.regex.*;

public class RegexExample2 { public static void main(String[] args) { String text = "Meu número: 123-456-7890"; String pattern = "\\\\d+"; // um ou mais dígitos

Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text);

while (m.find()) { System.out.println("Número encontrado: " + m.group()); } }}


Saída:

Número encontrado: 123Número encontrado: 456Número encontrado: 7890


3. Quantificadores e Limites



Quantificadores indicam quantas vezes um elemento do padrão deve se repetir:



  • * — 0 ou mais vezes
  • + — 1 ou mais vezes
  • ? — 0 ou 1 vez
  • {n} — exatamente n vezes
  • {n,} — n ou mais vezes
  • {n,m} — de n a m vezes


Limites ajudam a indicar onde o padrão deve estar:



  • ^ — início da string
  • $ — fim da string
  • \\b — limite de palavra


Exemplo 3: Validação de Endereço de Email



import java.util.regex.*;

public class RegexExample3 { public static void main(String[] args) { String email = "user@example.com"; String pattern = "^[\\\\w.-]+@[\\\\w.-]+\\\\.\\\\w{2,}$";

boolean isValid = Pattern.matches(pattern, email); System.out.println("Email válido: " + isValid); }}


Saída: Email válido: true



4. Grupos de Captura e Substituição de Texto



Grupos de captura permitem extrair par

Blogs

Book Recommendations