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

Java mit Beispiel für die Matcher-Methode hasAnchoringBounds()

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.

Beispiel1

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

Beispiel2

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