Flag này kích hoạt phiên bản Unicode của các predefined character classes (như \d, \w, \s) và POSIX character classes.
Ví dụ
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UNICODE_CHARACTER_CLASS_Example {
public static void main(String args[]) {
String regex = "\u00de"; // Ký tự THORN (Þ)
// Biên dịch với flag UNICODE_CHARACTER_CLASS
Pattern pattern = Pattern.compile(regex, Pattern.UNICODE_CHARACTER_CLASS);
String str[] = {"\u00de", "\u00fe", "\u00ee", "\u00ce"};
for (String ele : str) {
Matcher matcher = pattern.matcher(ele);
if (matcher.matches()) {
System.out.println(ele + " khớp với " + regex);
} else {
System.out.println(ele + " không khớp với " + regex);
}
}
}
}
Kết quả
Þ khớp với Þ þ khớp với Þ î không khớp với Þ Î không khớp với Þ
Giải thích: Với flag UNICODE_CHARACTER_CLASS, ký tự Unicode Þ (U+00DE) và phiên bản thường þ (U+00FE) được coi là cùng một ký tự trong các character class Unicode. Không có flag này, chúng được xử lý riêng biệt.