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\strong một số engine, nhưng trong Java\stương đương[ \t\n\x0B\f\r]- thực tế\p{Space}và\skhớp cùng tập ký tự.- Để escape trong string Java:
"\\p{Space}".