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

Phương thức Matcher hasAnchoringBounds () 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.

Các giới hạn cố định được sử dụng để đối sánh với các đối sánh vùng chẳng hạn như ^ và $. Theo mặc định, trình đối sánh sử dụng giới hạn cố định, bạn có thể chuyển từ sử dụng giới hạn cố định sang giới hạn không cố định bằng phương thức useAnchoringBounds ().

hasAnchoringBounds () phương thức của lớp này (Matcher) xác minh xem trình đối sánh hiện tại có sử dụng các giới hạn neo hay không, nếu có, nó trả về true, ngược lại, nó trả về false.

Ví dụ 1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HasAnchoringBoundsExample {
   public static void main(String[] args) {
      String regex = "(.*)(\\d+)(.*)";
      String input = "This is a sample Text, 1234, with numbers in between. "
         + "\n This is the second line in the text "
         + "\n This is third line in the text";
      //Creating a pattern object
      Pattern pattern = Pattern.compile(regex);
      //Creating a Matcher object
      Matcher matcher = pattern.matcher(input);
      //Verifying for anchoring bounds
      boolean bool = matcher.hasAnchoringBounds();
      //checking for the match
      if(bool) {
         System.out.println("Current matcher uses anchoring bounds");
      } else {
         System.out.println("Current matcher uses non-anchoring bounds");
      }
      if(matcher.matches()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
   }
}

Đầu ra

Current matcher uses anchoring bounds
Match not found

Ví dụ 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Trail {
   public static void main( String args[] ) {
      //Reading string value
      Scanner sc = new Scanner(System.in);
      System.out.println("Enter input string");
      String input = sc.nextLine();
      //Regular expression to find digits
      String regex = ".*\\d+.*";
      //Compiling the regular expression
      Pattern pattern = Pattern.compile(regex);
      //Printing the regular expression
      System.out.println("Compiled regular expression: "+pattern.toString());
      //Retrieving the matcher object
      Matcher matcher = pattern.matcher(input);
      matcher.useAnchoringBounds(false);
      boolean hasBounds = matcher.hasAnchoringBounds();
      if(hasBounds) {
         System.out.println("Current matcher uses anchoring bounds");
      } else {
         System.out.println("Current matcher uses non-anchoring bounds");
      }
      //verifying whether match occurred
      if(matcher.matches()) {
         System.out.println("Given String contains digits");
      } else {
         System.out.println("Given String does not contain digits");
      }
   }
}

Đầu ra

Enter input string
hello sample 2
Compiled regular expression: .*\d+.*
Current matcher uses non-anchoring bounds
Given String contains digits