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

Java-Methode Matcher hasTransparentBounds() mit Beispiel

java.util.regex.Matcher-Klasse stellt einen Motor für verschiedene Matching-Operationen dar. Diese Klasse hat keinen Konstruktor und kann mitmatches()Das von der Methode java.util.regex.Pattern erstellte/Objekt dieser Klasse erhalten.

In regulären Ausdrücken werden lookbehind und lookahead-Konstrukte verwendet, um bestimmte Muster vor oder nach anderen Mustern zu matchen. Zum Beispiel, wenn Sie akzeptieren müssen5bis12Zeichen der Zeichenkette, dann der reguläre Ausdruck ist-

"\\A(?=\\w{6,10}\\z)";

Standardmäßig sind die Grenzen des Matching-Bereichs für vorwärts, rückwärts und Grenzmuster nicht transparent, d.h. diese Strukturen können keine Eingabetexte außerhalb des Bereichs matchen-

Diese KlasseMethodehasTransparentBounds()Die Methode überprüft, ob der aktuelle Matcher transparente Grenzen verwendet, und gibt bei Ja true zurück, sonst false.

Beispiel1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   public static void main(String[] args) {
      //Die reguläre Ausdrucksform kann akzeptieren6bis10Zeichen
      String regex = "\\A(?=\\w{6,10}\\z)";
      System.out.println("Enter 5 bis 12 Zeichen: ");
      String input = new Scanner(System.in).next();
      //Erstellen Sie ein Musterobjekt
      Pattern pattern = Pattern.compile(regex);
      //Ein Matcher-Objekt erstellen
      Matcher matcher = pattern.matcher(input);
      //Den Bereich auf die Eingabezeichenfolge einstellen
      matcher.region(0, 4);
      if(matcher.find()) {
         System.out.println("Treffer gefunden");
      } else {
         System.out.println("Kein Treffer gefunden");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Wechsel zu transparentem Bereich
      if(bool) {
         System.out.println("Der aktuelle Matcher verwendet transparente Grenzen");
      } else {
         System.out.println("Der aktuelle Matcher verwendet transparente Grenzen");-transparente Grenzen");
      }
   }
}

Ausgabeergebnis

Eingeben 5 bis 12 Zeichen:
sampletext
Kein Treffer
Aktueller Matcher Benutzer nicht-transparent bound

Beispiel2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasTransparentBounds {
   public static void main(String[] args) {
      //Die reguläre Ausdrucksform kann akzeptieren6bis10Zeichen
      String regex = "\\A(?=\\w{6,10}\\z)";
      System.out.println("Enter 5 bis 12 Zeichen: ");
      String input = new Scanner(System.in).next();
      //Erstellen Sie ein Musterobjekt
      Pattern pattern = Pattern.compile(regex);
      //Ein Matcher-Objekt erstellen
      Matcher matcher = pattern.matcher(input);
      //Den Bereich auf die Eingabezeichenfolge einstellen
      matcher.region(0, 4);
      matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Treffer gefunden");
      } else {
         System.out.println("Kein Treffer gefunden");
      }
      boolean bool = matcher.hasTransparentBounds();
      //Wechsel zu transparentem Bereich
      if(bool) {
         System.out.println("Der aktuelle Matcher verwendet transparente Grenzen");
      } else {
         System.out.println("Der aktuelle Matcher verwendet transparente Grenzen");-transparente Grenzen");
      }
   }
}

Ausgabeergebnis

Eingeben 5 bis 12 Zeichen:
sampletext
Treffer gefunden
Der aktuelle Matcher verwendet transparente Grenzen