Java RegEx

Giới thiệu về Java RegEx

RegEx (Regular Expression) là một công cụ mạnh mẽ trong Java được sử dụng để tìm kiếm, kiểm tra và xử lý các chuỗi ký tự. RegEx cho phép lập trình viên thực hiện các phép toán phức tạp như tìm kiếm mẫu (pattern matching), chia tách chuỗi (string splitting), hoặc thay thế (string replacement) với độ chính xác cao.

Cú pháp của Java RegEx

Cú pháp của RegEx có thể hơi phức tạp, nhưng nó dựa trên một số ký tự và quy tắc nhất định. Dưới đây là một số ký tự và ý nghĩa phổ biến của chúng:

  • . - Đại diện cho bất kỳ ký tự nào (ngoại trừ dòng mới).
  • * - Đại diện cho 0 hoặc nhiều lần của phần tử đứng trước.
  • + - Đại diện cho 1 hoặc nhiều lần của phần tử đứng trước.
  • ? - Đại diện cho 0 hoặc 1 lần của phần tử đứng trước.
  • [abc] - Khớp với bất kỳ ký tự nào trong nhóm (ví dụ: a, b, hoặc c).
  • [^abc] - Khớp với bất kỳ ký tự nào không thuộc nhóm (không phải a, b, hoặc c).
  • (...) - Nhóm các ký tự lại với nhau.
  • \ - Dùng để thoát (escape) các ký tự đặc biệt.

Ví dụ về Java RegEx

Dưới đây là một số ví dụ cơ bản về cách sử dụng RegEx trong Java:

import java.util.regex.*;

public class RegExExample {
    public static void main(String[] args) {
        // Tạo một mẫu RegEx
        String regex = "a*b";
        String input = "aaab";

        // Tạo một Pattern từ mẫu
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        // Kiểm tra xem đầu vào có khớp với mẫu không
        if (matcher.matches()) {
            System.out.println("Khớp!");
        } else {
            System.out.println("Không khớp!");
        }

        // Tìm kiếm tất cả các từ có chứa chữ 'a'
        String text = "apple banana apricot orange";
        String searchRegex = "\\b[aA]\\w*\\b"; // Bắt đầu với a hoặc A

        Matcher searchMatcher = Pattern.compile(searchRegex).matcher(text);
        while (searchMatcher.find()) {
            System.out.println("Tìm thấy: " + searchMatcher.group());
        }
    }
}

Khi chạy chương trình trên, nó sẽ kiểm tra một chuỗi và tìm kiếm các từ bắt đầu bằng chữ 'a'. Kết quả sẽ là:

Khớp!
Tìm thấy: apple
Tìm thấy: banana
Tìm thấy: apricot

Kết luận

Java RegEx là một công cụ hữu ích cho việc xử lý chuỗi ký tự. Dù có thể ban đầu cảm thấy khó khăn, nhưng với thực hành và trải nghiệm, bạn có thể sử dụng RegEx để thực hiện nhiều nhiệm vụ phức tạp hơn trong lập trình. Hãy thử nghiệm với các ví dụ và tạo ra các mẫu RegEx của riêng bạn để khám phá khả năng của công cụ này!