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.
Nhóm () phương thức của lớp này (Matcher) trả về dãy con đầu vào đã so khớp trong lần so khớp cuối cùng.
Ví dụ 1
import java.util.regex.Matcher; import java.util.regex.Pattern; public class GroupExample { public static void main(String[] args) { String str = "<p>This <b>is</b> an <b>example</b> HTML <b>script</b> " + "where <b>every</b> alternative <b>word</b> is <b>bold</b>. " + "It <i>also</i> contains <i>italic</i> words</p>"; //Regular expression to match contents of the bold tags String regex = "<b>(\\S+)</b>|<i>(\\S+)</i>"; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(str); while (matcher.find()) { System.out.println(matcher.group()); } } }
Đầu ra
<b>is</b> <b>example</b> <b>script</b> <b>every</b> <b>word</b> <b>bold</b> <i>also</i> <i>italic</i>
Một biến thể khác của phương pháp này chấp nhận một biến số nguyên đại diện cho nhóm, trong đó các nhóm đã bắt được lập chỉ mục bắt đầu từ 1 (trái sang phải).
Ví dụ 2
import java.util.regex.Matcher; import java.util.regex.Pattern; public class GroupTest { public static void main(String[] args) { String regex = "(.*)(\\d+)(.*)"; String input = "This is a sample Text, 1234, with numbers in between."; //Creating a pattern object Pattern pattern = Pattern.compile(regex); //Matching the compiled pattern in the String Matcher matcher = pattern.matcher(input); if(matcher.find()) { System.out.println("match: "+matcher.group(0)); System.out.println("First group match: "+matcher.group(1)); System.out.println("Second group match: "+matcher.group(2)); System.out.println("Third group match: "+matcher.group(3)); } } }
Đầu ra
match: This is a sample Text, 1234, with numbers in between. First group match: This is a sample Text, 123 Second group match: 4 Third group match: , with numbers in between.