Computer >> Máy Tính >  >> Lập trình >> Java

Phương thức Matcher toMatchResult () trong Java với các ví dụ

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=#]