English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die Klasse java.util.regex.Matcher stellt den Motor für verschiedene Match-Operationen dar. Diese Klasse hat keinen Konstruktor und kann mit dem matchs()-Methoden der Klasse java.util.regex.Pattern erstellt werden/Objekte dieser Klasse erhalten.
Ankernde Grenzen werden für Bereichsmatchings verwendet, z.B. ^ und $. Standardmäßig verwendet der Matcher ankernde Bereiche, Sie können mit dem useAnchoringBounds()-Methoden von ankernden Bereichen zu nicht ankernden Bereichen wechseln.
Diese (Matcher)-KlassehasAnchoringBounds()Methoden überprüfen, ob der aktuelle Matcher ankernde Grenzen verwendet (wenn ja), andernfalls wird true zurückgegeben, andernfalls wird false zurückgegeben.
import java.util.regex.Matcher; import java.util.regex.Pattern; public class HasAnchoringBoundsExample { public static void main(String[] args) { String regex = "(.*)\\d+)\.*)"; String input = "Dies ist ein Beispieltext," 1234, mit Zahlen dazwischen." + "\nDas ist die zweite Zeile im Text " + "\n Dies ist die dritte Zeile im Text"; //Erstellung eines Pattern-Objekts Pattern pattern = Pattern.compile(regex); //Erstellung eines Matcher-Objekts Matcher matcher = pattern.matcher(input); //Überprüfung auf Ankerbegrenzung boolean bool = matcher.hasAnchoringBounds(); //Überprüfung auf Übereinstimmung if(bool) { System.out.println("Der aktuelle Matcher verwendet Ankerungsgrenzen"); } else { System.out.println("Der aktuelle Matcher verwendet nicht-anchoring bounds"); } if(matcher.matches()) { System.out.println("Übereinstimmung gefunden"); } else { System.out.println("Keine Übereinstimmung gefunden"); } } }
Ausgaberesultat
Aktueller Matcher verwendet Ankerbegrenzung Keine Übereinstimmung gefunden
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Trail { public static void main(String args[]) { //Lesen von Zeichenkettenwert Scanner sc = new Scanner(System.in); System.out.println("Geben Sie eine Eingabezeichenkette ein"); String input = sc.nextLine(); //Regulärer Ausdruck zum Finden von Ziffern String regex = "."*\\d+.*"; //Kompilierung des regulären Ausdrucks Pattern pattern = Pattern.compile(regex); //Druck der regulären Ausdruck System.out.println("Kompilierte reguläre Ausdruck: "+pattern.toString()); //Abholung des Matcher-Objekts Matcher matcher = pattern.matcher(input); matcher.useAnchoringBounds(false); boolean hasBounds = matcher.hasAnchoringBounds(); if(hasBounds) { System.out.println("Der aktuelle Matcher verwendet Ankerungsgrenzen"); } else { System.out.println("Der aktuelle Matcher verwendet nicht-anchoring bounds"); } //verifying whether match occurred if(matcher.matches()) { System.out.println("Die gegebene Zeichenkette enthält Ziffern"); } else { System.out.println("Die gegebene Zeichenkette enthält Ziffern"); } } }
Ausgaberesultat
Geben Sie den Eingabestring ein hello sample 2 Kompilierte reguläre Ausdrucksformel: .*\d+.* Der aktuelle Matcher verwendet nicht-Ankerungsgrenzen Die gegebene Zeichenkette enthält Ziffern