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

Java中具有示例的Matcher requireEnd()方法

Dasjava.util.regex.Matcher enthältDiese Klasse repräsentiert einen Motor, der verschiedene Match-Operationen durchführt. Diese Klasse hat keinen Konstruktor und kann mitmatches()Die Methode der Klasse java.util.regex.Pattern erstellt/Erhalten Sie das Objekt dieses Klassen.

Wenn der Match erfolgreich ist, gibt dieses (Matcher)-ObjektrequireEnd()Die Methode überprüft, ob es eine Möglichkeit gibt, dass das Match-Ergebnis falsch wird (wenn mehr Eingaben vorliegen), und gibt in diesem Fall true zurück,否则返回false。

Beispielsweise, wenn Sie versuchen, den letzten Wort der Eingabezeile mit dem regulären Ausdruck "you $" zu matchen, und wenn Ihre erste Eingabereihe "hello you are" ist, könnten Sie matchen, aber wenn Sie mehr Sätze akzeptieren, könnte das letzte Wort der neuen Zeile nicht das erforderliche Wort sein (d.h. "you"), so dass das Match-Ergebnis falsch wird. In diesem Fall gibtrequiredEnd()Die Methode gibt true zurück.

Gleichzeitig, wenn Sie versuchen, einen bestimmten Zeichen in der Eingabe zu matchen, geben Sie bitte # ein, und wenn Ihre erste Eingabereihe "Hallo#你好吗" ist, haben Sie einen Match, mehr Eingaben könnten den Inhalt des Matchers ändern, aber das Ergebnis bleibt unverändert, das ist wahr. In diesem Fall gibtrequiredEnd()Die Methode gibt false zurück.

Beispiel1

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$";
      //Lesen Sie die Eingabe des Benutzers
      Scanner sc = new Scanner(System.in);
      System.out.println("Gib den Eingabetext ein:");
      String input = sc.nextLine();
      //Pattern-Klasse instanziieren
      Pattern pattern = Pattern.compile(regex);
      //Matcher-Klasse instanziieren
      Matcher matcher = pattern.matcher(input);
      //Überprüfen Sie, ob eine Übereinstimmung aufgetreten ist
      if(matcher.find()) {
         System.out.println("Treffer gefunden");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Mehr Eingabe könnte das Ergebnis des Wettbewerbs falsch machen");
      } else{
         System.out.println("Das Ergebnis des Wettbewerbs wird wahr sein, trotz mehr Daten");
      }
   }
}

Ausgaberesultat

Gib den Eingabetext ein:
Hallo, wie geht es dir
Treffer gefunden
Mehrere Eingaben können das Ergebnis des Matches auf False setzen

Beispiel2

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 = "[#]";
      //Lesen Sie die Eingabe des Benutzers
      Scanner sc = new Scanner(System.in);
      System.out.println("Gib den Eingabetext ein:");
      String input = sc.nextLine();
      //Pattern-Klasse instanziieren
      Pattern pattern = Pattern.compile(regex);
      //Matcher-Klasse instanziieren
      Matcher matcher = pattern.matcher(input);
      //Überprüfen Sie, ob eine Übereinstimmung aufgetreten ist
      if(matcher.find()) {
         System.out.println("Treffer gefunden");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("Mehr Eingabe könnte das Ergebnis des Wettbewerbs falsch machen");
      } else{
         System.out.println("Das Ergebnis des Wettbewerbs wird wahr sein, trotz mehr Daten");
      }
   }
}

Ausgaberesultat

Gib den Eingabetext ein:
Hallo# wie# geht es dir
Treffer gefunden
Das Ergebnis des Wettbewerbs wird wahr sein, trotz mehr Daten