O que é um Regex em Java?

Uma expressão regular ou regex é uma sequência de caracteres que formam um padrão. Ao pesquisar qualquer dado, você pode usar esse padrão especializado para encontrar strings correspondentes. Pode ser tão simples quanto um único caractere ou pode ser um padrão mais complexo. Em Java, você tem um pacote java regex que possui classes que fornecem a facilidade de usar expressões regulares para pesquisa e manipulação de padrões. Este pacote é importado para o seu código da seguinte maneira.
import java.util.regex.*;

Java Regex - Correspondente

A classe Java Matcher fornece correspondência de padrões com expressões regulares.
Esta linha de código importa todas as classes disponíveis no pacote regex. Se você deseja importar apenas a classe Matcher , você pode importá-la usando a seguinte linha de código.
import java.util.regex.Matcher;
O pacote java regex possui três classes:
  1. Classe Padrão : Para definir o padrão que precisa ser pesquisado.

  2. Classe Matcher : Para combinar o padrão no texto e localizá-lo.

  3. Classe PatternSyntaxException : Para indicar quaisquer erros de sintaxe na expressão regular.

O funcionamento disso é bastante simples. Primeiro, você cria um objeto Pattern a partir da expressão regular para definir um padrão. Em seguida, um objeto Matcher é criado usando o objeto Pattern . A classe Matcher possui muitos métodos. O mais importante deles é o método matches() que retorna true se a expressão regular corresponder ao texto, caso contrário retorna false . A classe Java Matcher tem muitos outros métodos úteis para substituir texto nas strings de entrada que executam funções mais complexas do que os métodos replace() em java. Existem apenas dois métodos replace() em java, enquanto a classe Matcher fornece múltiplas funções para esta tarefa.

Métodos de classe Java Matcher

Alguns dos métodos da classe Java Matcher são descritos abaixo.
  • boolean matches() — retorna verdadeiro se a expressão regular corresponder ao padrão.

  • boolean find() — encontra a próxima expressão regular que corresponde ao padrão.

  • boolean find(int start) — encontra a próxima expressão regular que corresponde ao padrão desde o início determinado.

  • int start() — retorna o índice inicial da partida.

  • int end() — retorna o índice final da correspondência retornada.

  • int groupCount() — retorna o número total de grupos na partida.

  • String replaceAll(String replacement) — substitui cada subsequência da correspondência pela substituição fornecida.

  • String replaceFirst(String replacement) — substitui a primeira subsequência da correspondência pela substituição fornecida.

Exemplo de correspondência Java

Existem muitos métodos úteis para a classe Matcher , no entanto, examinaremos mais detalhadamente o(s) exemplo(s) específico(s) do método matches() .

Usando o método matches()

O seguinte demonstra um exemplo de Java Matcher para o método matches() .
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {

	public static void main(String[] args) {

		String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple"
		String firstCheck = "Apples";
		String secondCheck = "Apple";
		String thirdCheck = "apple";
		String fourthCheck = "An apple a day keeps the doctor away.";
		String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";


		Pattern pattern = Pattern.compile(regexPattern);
		Matcher matcher1 = pattern.matcher(firstCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + firstCheck);
		System.out.println("Output for matches(): " + matcher1.matches() + "\n");

		Matcher matcher2 = pattern.matcher(secondCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + secondCheck);
		System.out.println("Output for matches(): " + matcher2.matches() + "\n");

		Matcher matcher3 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + thirdCheck);
		System.out.println("Output for matches(): " + matcher3.matches() + "\n");

		Matcher matcher4 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fourthCheck);
		System.out.println("Output for matches(): " + matcher4.matches() + "\n");

		Matcher matcher5 = pattern.matcher(fifthCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fifthCheck);
		System.out.println("Output for matches(): " + matcher5.matches() + "\n");
	}
}
Saída
O padrão é: (.*)apple(.*) O texto a verificar é: Apples Output for matches(): false O padrão é: (.*)apple(.*) O texto a verificar é: Apple Output for matches() : false O padrão é: (.*)apple(.*) O texto a verificar é: apple Saída para matches(): true O padrão é: (.*)apple(.*) O texto a verificar é: An apple a day Mantém o médico longe. Saída para matches(): true O padrão é: (.*)apple(.*) O texto a verificar é: maçã verde, maçã amarela, maçã vermelha, adoro todos os tipos de maçãs. Saída para correspondências(): verdadeiro

Conclusão

Ao final desta postagem, esperamos que você esteja familiarizado com a classe Java Matcher em Java. Você aprendeu como usá-lo em seu código. Você também aprendeu como chamar o método matches() da classe Matcher . Você pode tentar outros métodos da classe Matcher por conta própria para entendê-la com mais profundidade. Continue praticando para um domínio mais profundo do conceito. Até então, continue crescendo e brilhando!