Trong một bài viết về Preg_match_all mình có nhắc đến biểu thức chính quy Regular Expression. Trong bài này chúng ta sẽ cùng tìm hiểu rõ hơn về nó.

Regex là gì?

Regex (hoặc RegExp) là viết tắt của Biểu thức chính quy Regular Expression, là cách nhanh chóng và hiệu quả để khớp các mẫu bên trong một chuỗi. Trong bài viết này, chúng ta sẽ tìm hiểu về cách tạo các biểu thức chính quy và cách sử dụng chúng trong các hàm PHP.

Bạn sẽ thường gặp xây dựng các chức năng như tìm kiếm văn bản, tìm kiếm và thay thế văn bản, xác thực đầu vào , vv…

Thực hành với Regex

Một chuỗi Regex được bắt đầu bằng ký tự “/” và kết thúc cũng bới ký tự “/“.

Xem ví dụ sau:

<?php
$string = "Đây là bài học về regex. Bài viết được cập nhật tại https://quachquynh.com/";
preg_match_all(
    "/[http]/",$string,
    $matches
);
var_dump('<pre>');
print_r($matches);
var_dump('</pre>');

Các ký tự Meta thường dùng

[abc]Khớp với bất cứ ký tự được chứa giữa cặp ngoặc vuông này
[^abc]Khớp với bất kỳ ký tự nào không phải là một trong các ký tự tùy chọn trong cặp dấu ngoặc.
[0-9]Khớp một ký tự trong phạm vi 0 – 9
^Tìm kết quả khớp ở đầu chuỗi.
|Tìm khớp chuỗi này hoặc chuỗi kia
$Tìm kết quả khớp ở cuối chuỗi.
?Khớp một mẫu 0 hoặc 1 lần
\bKhớp ở đầu một từ hoặc cuối một từ.
*Khớp một mẫu 0 hoặc nhiều lần
+Khớp một mẫu 1 hoặc nhiều lần
()Xác định một mẫu phụ
{}Xác định một mẫu lặp lại
Khớp một loạt các ký tự
\Sử dụng dấu gạch chéo ngược để thoát khởi ký tự đặc biệt

Một số ví dụ khớp chuỗi

Khớp URL:

/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i

Khớp Email:

/\[email protected]\S+\.\S+/

Khớp điện thoại:

/(03|05|07|08|09|01[2|6|8|9])+([0-9]{8})\b/

Kết luận: Với bài viết về biểu thức chính quy Regex đã đã thực sự biết cách sử dụng chưa? Hãy thử tập viết một vài mẫu để validate hay tìm một cụm từ xem thế nào nhé. Chúc bạn học tốt!

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *