Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách khớp chuỗi không phân biệt chữ hoa thường với Java Regex

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