Regular Expression (biểu thức chính quy) là một chuỗi các ký tự đặc biệt được sử dụng để xác định một mẫu (pattern) trong văn bản. Nó thường được dùng để kiểm tra, tìm kiếm, thay thế hoặc xử lý chuỗi.
Trong PHP, Regular Expression thường được sử dụng để kiểm tra định dạng email, số điện thoại, hoặc xử lý các trường hợp chuỗi phức tạp. PHP hỗ trợ hai loại biểu thức chính quy:
ereg()
, nhưng đã bị loại bỏ từ PHP 5.3.preg_*
, đây là loại biểu thức được khuyến nghị sử dụng.Regular Expression có nhiều ký tự và quy tắc đặc biệt để định nghĩa mẫu, dưới đây là các ký tự thông dụng:
.
: Đại diện cho bất kỳ ký tự nào.^
: Bắt đầu của chuỗi.$
: Kết thúc của chuỗi.*
: Lặp lại 0 hoặc nhiều lần ký tự trước.+
: Lặp lại 1 hoặc nhiều lần ký tự trước.?
: 0 hoặc 1 lần lặp lại ký tự trước.[]
: Bộ ký tự, ví dụ [abc]
sẽ khớp với a
, b
, hoặc c
.|
: Toán tử OR, ví dụ a|b
sẽ khớp với a
hoặc b
.()
: Nhóm các mẫu lại với nhau.{n}
: Lặp lại chính xác n
lần.{n,}
: Lặp lại ít nhất n
lần.{n,m}
: Lặp lại từ n
đến m
lần.d
: Đại diện cho bất kỳ chữ số nào (tương đương [0-9]
).D
: Bất kỳ ký tự nào không phải là chữ số.w
: Bất kỳ ký tự chữ cái hoặc số, hoặc dấu gạch dưới (tương đương [A-Za-z0-9_]
).W
: Bất kỳ ký tự nào không phải là chữ cái, số, hoặc dấu gạch dưới.s
: Khoảng trắng (space, tab, newline, etc.).S
: Bất kỳ ký tự nào không phải là khoảng trắng.preg_match()
Hàm preg_match()
được dùng để kiểm tra xem một chuỗi có khớp với mẫu biểu thức chính quy hay không.
Cú pháp:
preg_match_all()
Kết quả:
preg_replace()
Kết quả:
preg_split()
Kết quả:
$pattern = "/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/";
$string = "The quick brown fox"; $pattern = "/s+/"; $replacement = "-"; echo preg_replace($pattern, $replacement, $string);
Kết quả:
The-quick-brown-fox
$string = "Tôi có 10 quyển sách"; $pattern = "/d+/"; if (preg_match($pattern, $string)) { echo "Chuỗi chứa số"; } else { echo "Chuỗi không chứa số"; }
Regular Expression trong PHP là một công cụ cực kỳ mạnh mẽ giúp xử lý chuỗi một cách linh hoạt và hiệu quả. Với sự hiểu biết về các cú pháp và hàm cơ bản, bạn có thể áp dụng Regular Expression để kiểm tra dữ liệu đầu vào, xử lý chuỗi, và thực hiện nhiều thao tác phức tạp hơn trong ứng dụng của mình.
Hy vọng qua bài viết này, bạn đã nắm được các kiến thức từ cơ bản đến nâng cao về Regular Expression trong PHP.