Flag này bật case folding nhận biết Unicode (Unicode-aware case folding).
Khi dùng flag này cùng với CASE_INSENSITIVE trong phương thức compile() và tìm kiếm ký tự Unicode bằng regex, cả hai trường hợp (hoa/thường) của ký tự Unicode sẽ được khớp.
Ví dụ
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class UNICODE_CASE_Example {
public static void main(String args[]) {
String regex = "\u00de"; // Þ
// Biên dịch với UNICODE_CASE | CASE_INSENSITIVE
Pattern pattern = Pattern.compile(regex, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);
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 Þ
Lưu ý: CASE_INSENSITIVE đơn độc chỉ hoạt động cho ASCII. Cần kết hợp UNICODE_CASE để case-insensitive hoạt động đúng với Unicode (ví dụ: ß/SS, ı/I, þ/Þ).