Biểu thức chính quy (Regular Expression)

NỀN TẢNG CNTT

Nguyễn Mai Xuân

Regular Expression (viết tắt là Regex hoặc RegExp) là một chuỗi ký tự đặc biệt mô tả một mẫu hay một tập hợp các chuỗi ký tự. Nó được sử dụng trong lập trình và xử lý văn bản để tìm kiếm, so khớp và thay thế các chuỗi ký tự theo một quy tắc cụ thể.

Regular Expression cho phép bạn thực hiện các hoạt động như:

  1. Tìm kiếm: Xác định xem một chuỗi có xuất hiện một mẫu cụ thể hay không.

  2. So khớp: Kiểm tra xem một chuỗi có khớp hoàn toàn với một mẫu hay không.

  3. Thay thế: Thay thế các chuỗi ký tự phù hợp với một mẫu bằng một chuỗi khác.

  4. Tách chuỗi: Phân tách một chuỗi thành các phần con dựa trên một mẫu nhất định.

Các biểu thức chính quy có thể rất mạnh mẽ và linh hoạt.

Các ngôn ngữ lập trình thông dụng thường hỗ trợ Regular Expression như Python, JavaScript, Java, C#, PHP và nhiều ngôn ngữ khác. Việc sử dụng Regular Expression rất hữu ích khi bạn cần thực hiện các tác vụ phức tạp liên quan đến xử lý văn bản hoặc tìm kiếm thông tin theo một mẫu cụ thể.

II. Cú pháp cơ bản của Regular Expression

A. Các ký tự đặc biệt

1. Ký tự '.' - Khớp với bất kỳ ký tự nào.

2. Ký tự '\d' - Khớp với bất kỳ chữ số nào.

3. Ký tự '\w' - Khớp với bất kỳ chữ cái hoặc số nào.

4. Ký tự '\s' - Khớp với bất kỳ ký tự trống nào (khoảng trắng, tab, xuống dòng).

B. Các bộ và khoảng

1. Bộ [ ] - Khớp với một trong các ký tự được liệt kê trong ngoặc vuông.

2. Khoảng - Định nghĩa một phạm vi ký tự, ví dụ [a-z] khớp với chữ cái thường từ a đến z.

C. Các ký tự lặp 1. '*' - Khớp với 0 hoặc nhiều lần xuất hiện của mẫu.

2. '+' - Khớp với 1 hoặc nhiều lần xuất hiện của mẫu.

3. '?' - Khớp với 0 hoặc 1 lần xuất hiện của mẫu.

4. '{n}' - Khớp với chính xác n lần xuất hiện của mẫu.

5. '{min, max}' - Khớp với từ min đến max lần xuất hiện của mẫu.

D. Các nhóm và lựa chọn

1. ( ) - Nhóm các mẫu lại với nhau.

2. '|' - Lựa chọn giữa các mẫu khác nhau.

E. Các ký tự đặc biệt khác

1. '^' - Bắt đầu một chuỗi.

2. '$' - Kết thúc một chuỗi.

3. '' - Chèn một ký tự đặc biệt vào mẫu.