Regular Expression (Regex) là một chuỗi ký tự mô tả một mẫu tìm kiếm. Trong PHP, regex thường được sử dụng để kiểm tra định dạng email, số điện thoại, lọc nội dung chuỗi và thay thế chuỗi,..

1. Các khái niệm
Trong bài viết có sử dụng các từ khóa có liên quan sau:
- Regular Expression (Regex): Biểu thức chính quy
- Pattern: Mẫu tìm kiếm
- Modifier: Tham số tùy chỉnh (ví dụ: không phân biệt hoa thường)
- Match: Khớp (trùng với điều kiện tìm kiếm)
- Replace: Thay thế
- Delimiter: Dấu phân cách regex (ví dụ: /)
- Syntax: Cú pháp
- Wildcard: Ký tự đại diện (ví dụ .)
- Anchor: Ký hiệu neo chuỗi (ví dụ ^, $)
Cú pháp cơ bản: Một biểu thức chính quy thường có dạng:
/pattern/modifier
Giải thích từ khóa:
- pattern: Mẫu tìm kiếm
- modifier: Tùy chọn (ví dụ i không phân biệt hoa thường)
2. Hàm regex thường dùng trong PHP
| Hàm | Mô tả |
| preg_match() | Kiểm tra chuỗi có khớp với regex không |
| preg_match_all() | Trả về tất cả kết quả khớp |
| preg_replace() | Thay thế nội dung khớp bằng nội dung khác |
Giải thích từ khóa:
- preg_: prefix dùng trong PHP cho các hàm xử lý regex
- match: so khớp
- all: tất cả
- replace: thay thế
3. Ví dụ thực tế thường gặp
3.1 Kiểm tra Email
Giải thích: Mẫu regex kiểm tra email có chứa đúng định dạng username@domain

3.2 Kiểm tra số điện thoại (10 chữ số)

3.3 Kiểm tra chuỗi chỉ chứa chữ cái

3.4 Kiểm tra mật khẩu mạnh
Ít nhất 8 ký tự, chứa ít nhất 1 chữ in hoa và 1 chữ số.

Giải thích từ khóa
- A-Z: Chữ hoa
- \d: Chữ số
- {8,}: ít nhất 8 ký tự
3.5 Thay thế từ thô tục

4. Ký hiệu thường dùng trong Regex
| Ký hiệu | Ý nghĩa | Ví dụ |
| \d | Chữ số (0–9) | /\d{3}/ → 3 chữ số |
| \w | Ký tự chữ và số (a–z, A–Z, 0–9, _) | /\w+/ |
| \s | Khoảng trắng (space, tab…) | /\s/ |
| . | Khớp mọi ký tự | /a.c/ → “abc”, “axc” |
| ^ | Bắt đầu chuỗi | /^Hello/ |
| $ | Kết thúc chuỗi | /world$/ |
| [a-z] | Khoảng ký tự từ a đến z | [0-9] |
| + | 1 lần trở lên | /\d+/ |
| * | 0 hoặc nhiều lần | /a*/ |
| {n} | Chính xác n lần | /\d{4}/ → 4 số |
Mẹo học Regex
- Sử dụng regex101.com để thử mẫu
- Nhớ sử dụng dấu / làm dấu phân cách mẫu
- Chia nhỏ bài toán để viết regex dễ hơn
Hy vọng bài viết này sẽ giúp các bạn có thêm được những kiến thức cần thiết cho môn học. Chúc các bạn học tập tốt!
Giảng viên Lê Thị Hằng
Bộ môn Công nghệ thông tin
FPT Polytechnic Hà Nội

