Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Trường Pattern.UNICODE_CASE trong Java với ví dụ


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, þ/Þ).