English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método Matcher requireEnd() com exemplo em Java

odo java.util.regex.MatcherClasse representa um motor, que realiza várias operações de correspondência. Esta classe não tem construtor, pode usarmatches()O método create da classe java.util.regex.Pattern/Obter este objeto.

Se houver correspondência, o objeto deste(Matcher)classerequireEnd()O método verifica se há uma oportunidade de resultado de correspondência falso (se houver mais entrada), se houver, o método retorna verdadeiro, caso contrário, retorna falso.

Por exemplo, se você tentar usar a expressão regular "you $" para combinar a última palavra da string de entrada com você, e se sua primeira linha de entrada for "hello you are", você pode combinar, mas se você aceitar mais frases novas linhas, a última palavra da nova linha pode não ser a palavra necessária (ou seja, "you"), tornando o resultado da combinação falso. Neste caso, orequiredEnd()O método retorna verdadeiro.

Da mesma forma, se você tentar combinar um caractere específico na entrada, diga #, e se sua primeira linha de entrada for "Hello#Como vai você?", você terá uma correspondência, mais entrada de dados pode mudar o conteúdo do matcher, mas não mudará o resultado, isso é verdadeiro. Neste caso, orequiredEnd()O método retorna falso.

Exemplo1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main(String args[]) {
      String regex = "you$";
      //Ler entrada do usuário
      Scanner sc = new Scanner(System.in);
      System.out.println("Insira o texto de entrada:");
      String input = sc.nextLine();
      //Instanciar a classe Pattern
      Pattern pattern = Pattern.compile(regex);
      //Instanciar a classe Matcher
      Matcher matcher = pattern.matcher(input);
      //Verificar se ocorreu o confronto
      if(matcher.find()) {
         System.out.println("Confronto encontrado");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Mais entrada pode tornar o resultado do confronto falso");
      } else{
         System.out.println("O resultado do confronto será verdadeiro, independentemente de mais dados");
      }
   }
}

Resultado da saída

Insira o texto de entrada:
Olá, como vai você?
Confronto encontrado
Mais entrada pode tornar o resultado da correspondência falsa

Exemplo2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main(String args[]) {
      String regex = "[#]";
      //Ler entrada do usuário
      Scanner sc = new Scanner(System.in);
      System.out.println("Insira o texto de entrada:");
      String input = sc.nextLine();
      //Instanciar a classe Pattern
      Pattern pattern = Pattern.compile(regex);
      //Instanciar a classe Matcher
      Matcher matcher = pattern.matcher(input);
      //Verificar se ocorreu o confronto
      if(matcher.find()) {
         System.out.println("Confronto encontrado");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Mais entrada pode tornar o resultado do confronto falso");
      } else{
         System.out.println("O resultado do confronto será verdadeiro, independentemente de mais dados");
      }
   }
}

Resultado da saída

Insira o texto de entrada:
Olá#como#você está
Confronto encontrado
O resultado do confronto será verdadeiro, independentemente de mais dados