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

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


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.