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 ý
IsLatinlà Unicode block property, khácLu/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}.