Bạn có thể khớp ký tự không phải chữ số bằng metaký tự "\\D".
Ví dụ 1
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String args[]) {
// Đọc chuỗi từ người dùng
System.out.println("Nhập một chuỗi");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
String regex = "\\D";
// Biên dịch biểu thức chính quy
Pattern pattern = Pattern.compile(regex);
// Lấy đối tượng matcher
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("Số ký tự không phải chữ số: " + count);
}
}
Kết quả
Nhập một chuỗi sample text 2425 36 Số ký tự không phải chữ số: 13
Ví dụ 2
import java.util.Scanner;
public class RegexExample {
public static void main(String args[]) {
// Biểu thức chính quy chấp nhận từ 10 ký tự không phải số
String regex = "\\D{10}";
System.out.println("Nhập giá trị đầu vào: ");
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
boolean result = input.matches(regex);
if (result) {
System.out.println("đầu vào khớp");
} else {
System.out.println("đầu vào sai");
}
}
}
Kết quả 1
Nhập giá trị đầu vào: sample abc đầu vào khớp
Kết quả 2
Nhập giá trị đầu vào: sample1234 đầu vào sai