Hướng dẫn php preg_match multiple patterns - php preg_match nhiều mẫu
Just in case some day you will need a non-regex solution, you can use the following startswith and endswith functions: Show
Output of the IDEONE demo: Nếu bạn theo dõi serie học Regular Expression từ đầu cho tới giờ thì hàm 1 không còn xa lạ gì nữa, nhưng nếu bạn là khách viếng thăm và đây là bài đầu tiên của bạn thì mình khuyên bạn nên quay lại đọc từ bài Regular Expression là gì thì sẽ tốt hơn. Tuy nhiên mình vẫn giới thiệu từ đầu để phù hợp với mọi đối tượng luôn.Tuy nhiên mình vẫn giới thiệu từ đầu để phù hợp với mọi đối tượng luôn.Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức. 1. Hàm preg_match() trong PHPHàm
Trong đó::
Kết quả:: Bài viết này được đăng tại [free tuts .net]
Ví dụ: kiểm tra một chuỗi có phải là một dãy số hay không.: kiểm tra một chuỗi có phải là một dãy số hay không. $pattern = '/^[0-9]+$/'; $subject = '0979306603'; if (preg_match($pattern, $subject, $matches)){ echo 'Đây là một dãy số'; } Nếu bạn thắc mắc tại sao biến 6 không tồn tại và mình truyền vào nhưng chương trình chạy không bị lỗi thì mình xin giải thích rằng đó là vì tham số thứ ba 6 là một tham chiếu nên bạn có thể truyền được như vậy, và bạn có thể đặt cho nó một cái tên bất kỳ chứ không nhất thiết phải là 6.không tồn tại và mình truyền vào nhưng chương trình chạy không bị lỗi thì mình xin giải thích rằng đó là vì tham số thứ ba 6 là một tham chiếu nên bạn có thể truyền được như vậy, và bạn có thể đặt cho nó một cái tên bất kỳ chứ không nhất thiết phải
là 6.Bây giờ mình sẽ thực hành một số ví dụ để bạn hiểu rõ hơn về hàm này nhé. 2. Các ví dụ hàm preg_match trong phpMình xin nhắc lại kết quả của hàm 1 sẽ trả về $pattern = '/^[0-9]+$/'; $subject = '0979306603'; if (preg_match($pattern, $subject, $matches)){ echo 'Đây là một dãy số'; }4 nên nếu bạn muốn lấy kết quả thì phải thông qua biến 6.Ví dụ 1: xem thử giá trị của biến 6$subject = "freetuts.net"; $pattern = '/net/'; preg_match($pattern, $subject, $matches); echo ''; print_r($matches); echo ''; Kết quả: Như vậy kết quả trả về của biến 6 là một mảng các ký tự được so khớp.Nếu bạn thắc mắc tại sao mảng trả về lại ở dạng $pattern = '/^[0-9]+$/'; $subject = '0979306603'; if (preg_match($pattern, $subject, $matches)){ echo 'Đây là một dãy số'; }8 thì xem các ví dụ dưới đây nhé. Ví dụ 2: Capturing Value - gom nhóm 1 cấp: Capturing Value - gom nhóm 1 cấp $subject = "freetuts.net"; $pattern = '/(net)/'; preg_match($pattern, $subject, $matches); echo ''; print_r($matches); echo ''; Kết quả: Array ( [0] => net [1] => net ) Như vậy kết quả trả về của biến $subject = "freetuts.net"; $pattern = '/((net))/'; preg_match($pattern, $subject, $matches); echo ''; print_r($matches); echo ''; Kết quả: Array ( [0] => net [1] => net [2] => net ) Như vậy kết quả trả về của biến True1 True3 6 là một mảng các ký tự được so khớp.Nếu bạn thắc mắc tại sao mảng trả về lại ở dạng $pattern = '/^[0-9]+$/'; $subject = '0979306603'; if (preg_match($pattern, $subject, $matches)){ echo 'Đây là một dãy số'; }8 thì xem các ví dụ dưới đây nhé.net, tuy nhiên cách khai báo lại khác nhau:
Cả 3 ví dụ trên đều cùng một mục đích là lấy ra chuỗi net, tuy nhiên cách khai báo lại khác nhau:
Và kết quả cũng khác nhau:Capturing Value thì quay lại các bài trước dể đọc nhé:
Ví dụ 3: Chuỗi $subject = "freetuts.net";
$pattern = '/net/';
preg_match($pattern, $subject, $matches);
echo ' |