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

POSIX Character Class \p{IsLatin} trong Java Regex


Khái niệm

\p{IsLatin} khớp ký tự thuộc Unicode block Latin (Basic Latin, Latin-1 Supplement, Latin Extended-A/B/Additional).

Ví dụ 1: Đếm ký tự Latin

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập chuỗi: ");
        String input = sc.nextLine();
        String regex = "\\p{IsLatin}";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        System.out.println("Số ký tự Latin: " + count);
    }
}
Nhập chuỗi: cédé há ó
Số ký tự Latin: 7

Ví dụ 2: Kiểm tra có ký tự Latin

import java.util.Scanner;

public class Example {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập chuỗi: ");
        String input = sc.nextLine();
        String regex = "^.*\\p{IsLatin}.*";
        boolean result = input.matches(regex);
        if (result) {
            System.out.println("Chuỗi chứa ký tự Latin");
        } else {
            System.out.println("Chuỗi không chứa ký tự Latin");
        }
    }
}
Nhập chuỗi: sample text y e
Chuỗi chứa ký tự Latin

Lưu ý

  • IsLatin là Unicode block property, khác Lu/Ll (category).
  • Bao gồm: Basic Latin (ASCII), Latin-1 Supplement (có dấu), Latin Extended.
  • Tiếng Việt (có dấu) thuộc Latin Extended Additional → khớp \p{IsLatin}.