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

Matcher useTransparentBounds() method with examples in Java

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

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

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

Standardmäßig sind die Grenzen des Matcher-Bereichs für die Vorwärts- und Rückwärtsansicht sowie die Grenzbereichsübereinstimmung nicht transparent, d.h. diese Konstrukte können den Textinhalt außerhalb der Bereichsgrenzen nicht übereinstimmen.-

Beispiel1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class useTransparentBoundsExample {
   public static void main(String[] args) {
      //Regular expressions can accept6to10characters
      String regex = "\\A(?=\\w{6,10})\z";
      System.out.println("Enter 5 to 12 characters: ");
      String input = new Scanner(System.in).next();
      //Create a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Create a Matcher object
      Matcher matcher = pattern.matcher(input);
      //Set the region to the input string
      matcher.region(0, 4);
      //Switch to transparent range
      if(matcher.find()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
   }
}

Output result

Enter 5 to 12 characters:
sampleText
Keine Übereinstimmung gefunden

Dieses KlasseMethodeuseTransparentBounds()Die Methode akzeptiert ein boolesches Wert, wenn true an diese Methode übergeben wird, dann verwendet der aktuelle Matcher den transparenten Bereich, wenn false an diese Methode übergeben wird, dann wird der nicht transparente Bereich verwendet.

Beispiel2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String[] args) {
      //Regular expressions can accept6to10characters
      String regex = "\\A(?=\\w{6,10})\z";
      System.out.println("Enter 5 to 12 characters: ");
      String input = new Scanner(System.in).next();
      //Create a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Create a Matcher object
      Matcher matcher = pattern.matcher(input);
      //Set the region to the input string
      matcher.region(0, 4);
      //Switch to transparent range
      matcher = matcher.useTransparentBounds(true);
      if(matcher.find()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
   }
}

Output result

Enter 5 to 12 characters:
sampletext
Match found