Lớp java.util.regex.Matcher đại diện cho một công cụ thực hiện các hoạt động so khớp khác nhau. Không có hàm tạo nào cho lớp này, bạn có thể tạo / lấy một đối tượng của lớp này bằng cách sử dụng phương thức match () của lớp java.util.regex.Pattern.
toMatchResult () phương thức này (Matcher) trả về trạng thái khớp của trình so khớp hiện tại.
Ví dụ 1
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ToMatchResultExample {
public static void main(String[] args) {
String str = "<p>This <b>is</b> an <b>example</b>.</p>";
//Regular expression to match contents of the bold tags
String regex = "<b>(\\S+)</b>";
//Creating a pattern object
Pattern pattern = Pattern.compile(regex);
//Matching the compiled pattern in the String
System.out.println("State of the matcher: ");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println(matcher.toMatchResult());
String result = matcher.group(1);
}
matcher = matcher.reset("<p>this is another <b>line</b>.</p>");
matcher.find();
System.out.println("");
System.out.println("State of the matcher after resetting it: \n"+matcher.toMatchResult());
}
} Đầu ra
State of the matcher: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,40 lastmatch=<b>is</b>] java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,40 lastmatch=<b>example</b>] State of the matcher after resetting it: java.util.regex.Matcher[pattern=<b>(\S+)</b> region=0,35 lastmatch=<b>line</b>]
Ví dụ 2
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ToMatchResultExample {
public static void main(String[] args) {
String regex = "[#]";
System.out.println("Enter a string: ");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
//Creating a pattern object
Pattern pattern = Pattern.compile(regex);
//Creating a Matcher object
Matcher matcher = pattern.matcher(input);
System.out.println("Match state: ");
//Finding the match
while(matcher.find()) {
System.out.println(matcher.toMatchResult());
}
}
} Đầu ra
Enter a string: #This #is #a #sample #text Match state: java.util.regex.Matcher[pattern=[#] region=0,26 lastmatch=#] java.util.regex.Matcher[pattern=[#] region=0,26 lastmatch=#] java.util.regex.Matcher[pattern=[#] region=0,26 lastmatch=#] java.util.regex.Matcher[pattern=[#] region=0,26 lastmatch=#] java.util.regex.Matcher[pattern=[#] region=0,26 lastmatch=#]