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

Mẫu trường CANON_EQ trong Java với các ví dụ

Trường CANON_EQ của lớp Mẫu chỉ khớp với hai ký tự nếu chúng bằng nhau về mặt nguyên tắc. Khi bạn sử dụng giá trị này làm giá trị cờ cho phương thức compile (), hai ký tự sẽ được đối sánh nếu và chỉ khi các phân tách chính tắc đầy đủ của chúng bằng nhau.

Trong đó phân tích hợp quy là một trong những dạng chuẩn hóa văn bản Unicode

Ví dụ 1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CANON_EQ_Example {
   public static void main( String args[] ) {
      String regex = "b\u0307";
      //Compiling the regular expression
      Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ);
      //Retrieving the matcher object
      Matcher matcher = pattern.matcher("\u1E03");
      if(matcher.matches()) {
         System.out.println("Match found");
      } else {
         System.out.println("Match not found");
      }
   }
}

Đầu ra

Match found

Ví dụ 2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CANON_EQ_Example {
   public static void main( String args[] ) {
      String regex = "a\u030A";
      //Compiling the regular expression
      Pattern pattern = Pattern.compile(regex, Pattern.CANON_EQ);
      //Retrieving the matcher object
      String [] input = {"\u00E5", "a\u0311", "a\u0325", "a\u030A", "a\u1E03", "a\uFB03" };
      for (String ele : input) {
         Matcher matcher = pattern.matcher(ele);
         if(matcher.matches()) {
            System.out.println(ele+" is a match for "+regex);
         } else {
            System.out.println(ele+" is not a match for "+regex);
         }
      }
   }
}

Đầu ra

å is a match for a?
a? is not a match for a?
a? is not a match for a?
a? is a match for a?
a? is not a match for a?
a? is not a match for a?