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

Méthode requireEnd() avec exemple dans Matcher de Java

Lede java.util.regex.MatcherLa classe représente un moteur, effectuant diverses opérations de correspondance. Cette classe n'a pas de constructeur, elle peut être utiliséematches()La méthode create de la classe java.util.regex.Pattern/Obtenez l'objet de cette classe.

Si la correspondance est réussie, alors pour ce (Matcher) classerequireEnd()La méthode vérifie s'il y a une opportunité de résultat de correspondance faux (si il y a plus d'inputs), si oui, cette méthode retourne vrai, sinon retourne faux.

Par exemple, si vous essayez d'utiliser l'expression régulière "you $" pour correspondre au dernier mot de la chaîne d'entrée, et si votre première ligne d'entrée est "hello you are", vous pourriez correspondre, mais si vous acceptez plus de phrases sur de nouvelles lignes, le dernier mot de la nouvelle ligne peut ne pas être le mot nécessaire (c'est-à-dire "you"), ce qui rend le résultat de la correspondance faux. Dans ce cas, larequiredEnd()La méthode retourne vrai.

De même, si vous essayez de correspondre à un caractère spécifique dans l'entrée, dites #, et si votre première ligne d'entrée est "Hello#Bonjour comment ça va", vous aurez une correspondance, plus d'inputs peuvent changer le contenu du matcher, mais ne changeront pas le résultat, c'est vrai. Dans ce cas, larequiredEnd()Le méthode retourne faux.

Exemple1

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$";
      //Lecture des entrées de l'utilisateur
      Scanner sc = new Scanner(System.in);
      System.out.println("Entrez le texte d'entrée: ");
      String input = sc.nextLine();
      //Instance de la classe Pattern
      Pattern pattern = Pattern.compile(regex);
      //Instance de la classe Matcher
      Matcher matcher = pattern.matcher(input);
      //Vérification de la correspondance
      if(matcher.find()) {
         System.out.println("Correspondance trouvée");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Plus d'entrée peut rendre le résultat du match faux");
      } else{
         System.out.println("Le résultat du match sera vrai, despite plus de données");
      }
   }
}

Résultat de la sortie

Entrez le texte d'entrée:
Hello comment ça va
Correspondance trouvée
Plus d'inputs peut rendre le résultat de la correspondance faux

Exemple2

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 = "[#]";
      //Lecture des entrées de l'utilisateur
      Scanner sc = new Scanner(System.in);
      System.out.println("Entrez le texte d'entrée: ");
      String input = sc.nextLine();
      //Instance de la classe Pattern
      Pattern pattern = Pattern.compile(regex);
      //Instance de la classe Matcher
      Matcher matcher = pattern.matcher(input);
      //Vérification de la correspondance
      if(matcher.find()) {
         System.out.println("Correspondance trouvée");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Plus d'entrée peut rendre le résultat du match faux");
      } else{
         System.out.println("Le résultat du match sera vrai, despite plus de données");
      }
   }
}

Résultat de la sortie

Entrez le texte d'entrée:
Hello# how# are you
Correspondance trouvée
Le résultat du match sera vrai, malgré plus de données