Biểu thức chính quy là chuỗi ký tự đặc biệt giúp khớp/tìm chuỗi khác, sử dụng cú pháp chuyên biệt trong pattern. Dùng để tìm kiếm, chỉnh sửa, thao tác văn bản và dữ liệu. Java cung cấp gói java.util.regex cho pattern matching.
Lớp Matcher
Đối tượng Matcher là engine giải thích pattern và thực hiện các phép khớp (match operations) trên chuỗi đầu vào. Giống như lớp Pattern, Matcher không định nghĩa public constructor. Bạn lấy Matcher object bằng cách gọi phương thức matcher() trên đối tượng Pattern.
Các instance của lớp này KHÔNG an toàn (not thread-safe) cho việc sử dụng bởi nhiều thread đồng thời.
Ví dụ: In các chuỗi bắt đầu bằng chữ số
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StartingwithDigit {
public static void main(String args[]) {
String regex = "^[0-9].*$";
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("Các chuỗi bắt đầu bằng chữ số: ");
for (int i = 0; i < 5; i++) {
Matcher m = p.matcher(input[i]);
if (m.matches()) {
System.out.println(m.group());
}
}
}
}
Kết quả
Nhập 5 chuỗi: sample string 1 sample string 2 11 sample string 3 22 sample string 4 43534 56353 636 Các chuỗi bắt đầu bằng chữ số: 11 sample string 3 22 sample string 4 43534 56353 636