Gói java.util.regex của Java cung cấp các lớp để tìm các mẫu cụ thể trong chuỗi ký tự. Lớp Pattern của gói này là biểu diễn đã biên dịch của một biểu thức chính quy.
Để khớp một ký tự cụ thể từ chuỗi đầu vào cho trước:
- Lấy chuỗi đầu vào.
- Phương thức compile() của lớp này nhận một giá trị chuỗi đại diện cho biểu thức chính quy và một giá trị nguyên đại diện cho cờ (flag) trả về đối tượng Pattern. Biên dịch biểu thức chính quy bằng cách truyền:
- Mẫu khớp “[ ]” với ký tự yêu cầu trong đó, ví dụ: “[t]”.
- Cờ CASE_INSENSITIVE để bỏ qua chữ hoa/thường.
- Phương thức matcher() của lớp Pattern nhận chuỗi đầu vào và trả về đối tượng Matcher. Tạo/Lấy đối tượng matcher bằng phương thức này.
- find() - Sử dụng phương thức find() của Matcher để tìm các khớp.
Ví dụ
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompileExample {
public static void main(String args[]) {
// Đọc giá trị chuỗi
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi đầu vào");
String input = sc.nextLine();
// Biểu thức chính quy để tìm ký tự 't'
String regex = "[t]";
// Biên dịch biểu thức chính quy với cờ CASE_INSENSITIVE
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
// Lấy đối tượng matcher
Matcher matcher = pattern.matcher(input);
int count = 0;
while (matcher.find()) {
count++;
}
System.out.println("Số lần khớp: " + count);
}
}
Kết quả
Nhập chuỗi đầu vào Tutorialspoint Số lần khớp: 3