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

Lớp ký tự POSIX \p{Space} trong Java Regex

Lớp ký tự POSIX \p{Space} khớp với các ký tự whitespace (khoảng trắng) bao gồm: \t (tab), \n (newline), \x0B (vertical tab), \f (form feed), \r (carriage return), và khoảng trắng thông thường .

Ví dụ 1: Đếm ký tự khoảng trắng

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

public class SpaceCharacters {
    public static void main(String args[]) {
        System.out.println("Nhập một chuỗi:");
        Scanner sc = new Scanner(System.in);
        String input = sc.nextLine();

        // Regex khớp 1 ký tự whitespace
        String regex = "[\\p{Space}]";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        int count = 0;
        while (matcher.find()) {
            count++;
        }
        System.out.println("Số ký tự khoảng trắng: " + count);
    }
}

Kết quả mẫu

Nhập một chuỗi: space	tab test
Số ký tự khoảng trắng: 2

Ví dụ 2: Lọc chuỗi chứa khoảng trắng

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

public class Example {
    public static void main(String args[]) {
        // Regex: chuỗi chứa ít nhất 1 khoảng trắng
        String regex = "^.*\\p{Space}.*$";

        Scanner sc = new Scanner(System.in);
        System.out.println("Nhập 5 chuỗi:");
        String[] input = new String[5];
        for (int i = 0; i < 5; i++) {
            input[i] = sc.nextLine();
        }

        Pattern p = Pattern.compile(regex);
        System.out.println("Chuỗi có chứa khoảng trắng:");
        for (int i = 0; i < 5; i++) {
            Matcher m = p.matcher(input[i]);
            if (m.matches()) {
                System.out.println(m.group());
            }
        }
    }
}

Kết quả mẫu

Nhập 5 chuỗi:
sample data
hello
welcome to tutorialspoint
12345
ab bc cd da

Chuỗi có chứa khoảng trắng:
sample data
welcome to tutorialspoint
ab bc cd da

Lưu ý

  • \p{Space} rộng hơn \s trong một số engine, nhưng trong Java \s tương đương [ \t\n\x0B\f\r] - thực tế \p{Space} và \s khớp cùng tập ký tự.
  • Để escape trong string Java: "\\p{Space}".