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
import java.util.regex.Matcher;
O pacote java regex possui três classes:
-
Classe Padrão : Para definir o padrão que precisa ser pesquisado.
-
Classe Matcher : Para combinar o padrão no texto e localizá-lo.
-
Classe PatternSyntaxException : Para indicar quaisquer erros de sintaxe na expressão regular.
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
GO TO FULL VERSION