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