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