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?