Phương thức compile() của lớp Pattern chấp nhận hai tham số:
- Chuỗi biểu thức chính quy.
- Giá trị nguyên là một trường của lớp
Pattern.
Trường CASE_INSENSITIVE của lớp Pattern khớp ký tự không phân biệt chữ hoa/chữ thường. Do đó, nếu bạn truyền cờ này vào phương thức compile() cùng với biểu thức chính quy, cả chữ hoa và chữ thường đều được khớp.
Ví dụ 1: Tìm kiếm không phân biệt chữ hoa thường
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập dữ liệu:");
String input = sc.nextLine();
// Biểu thức chính quy tìm từ "test"
String regex = "test";
// Biên dịch với cờ CASE_INSENSITIVE
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
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 dữ liệu: test TEST Test sample data Số lần xuất hiện: 3
Ví dụ 2: Kiểm tra giá trị boolean không phân biệt chữ hoa thường
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class VerifyBoolean {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập giá trị chuỗi:");
String str = sc.next();
Pattern pattern = Pattern.compile("true|false", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(str);
if (matcher.matches()) {
System.out.println("Chuỗi cho trước là kiểu boolean");
} else {
System.out.println("Chuỗi cho trước không phải kiểu boolean");
}
}
}
Kết quả
Nhập giá trị chuỗi: TRUE Chuỗi cho trước là kiểu boolean