Để khớp một phạm vi ký tự, tức là khớp tất cả các ký tự giữa hai ký tự được chỉ định trong một chuỗi, bạn có thể dùng lớp ký tự (character class) như:
[a-z]
- Biểu thức “[a-zA-Z]” chấp nhận bất kỳ chữ cái tiếng Anh nào.
- Biểu thức “[0-9&&[^35]]” chấp nhận số ngoại trừ 3 và 5.
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 = "^[a-zA-Z0-9]*$";
// 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);
if (matcher.matches()) {
System.out.println("Khớp xảy ra");
} else {
System.out.println("Không khớp");
}
}
}
Kết quả 1
Nhập một chuỗi Hello Khớp xảy ra
Kết quả 2
Nhập một chuỗi sample# Không khớp
Ví dụ 2
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 = "[0-9&&[^35]]";
// 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ố lần xuất hiện: " + count);
}
}
Kết quả
Nhập một chuỗi 111223333555689 Số lần xuất hiện: 8