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

Character Class \p{javaUpperCase} trong Java Regex


Khái niệm

\p{javaUpperCase} khớp chữ hoa theo định nghĩa Java (Character.isUpperCase(c)).

Ví dụ 1: Đếm chữ hoa

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

public class RegexExample {
    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{javaUpperCase}]";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        int count = 0;
        while (matcher.find()) {
            count++;
        }
        System.out.println("Số ký tự hoa: " + count);
    }
}
Nhập chuỗi: This IS A sample TExt
Số ký tự hoa: 6

Ví dụ 2: Chuỗi chỉ chứa chữ hoa

String regex = "^\\p{javaUpperCase}+$";
// Input: Raju RAMU rahman radha SUnDar*
// Khớp: RAMU
// Không khớp: Raju, rahman, radha, SUnDar*

So sánh \p{javaUpperCase} vs \p{Lu}

ClassNguồnKhác biệt
\p{javaUpperCase}Character.isUpperCase()Java-specific, bao gồm một số char đặc biệt
\p{Lu}Unicode General CategoryChuẩn Unicode, Letter Uppercase

Thường thì cho kết quả giống nhau, nhưng isUpperCase có thể true cho một số char không phải Lu (ví dụ: một số ký tự symbol).