Hàm preg_match trong PHP tìm kiếm, kiểm tra, so khớp chuỗi cho mẫu, trả về true nếu mẫu tồn tại và ngược lại sai. Bài viết dưới đây sẽ định nghĩa preg_match trong PHP và hướng dẫn sử dụng hàm preg_match trong PHP.
preg_match ( $pattern , $subject, &$matches)
Trong đó:
$pattern là biểu thức Regular Expression
$subject là chuỗi cần kiểm tra
$matches là kết quả trả về, đây là một tham số truyền vào ở dạng tham chiếu.
Hàm preg_match () tìm kiếm, so khớp chuỗi cho mẫu, trả về true nếu mẫu tồn tại và ngược lại sai.
Nếu tham số đầu vào tùy chọn pattern_array được cung cấp, thì pattern_array sẽ chứa các phần khác nhau của các mẫu con chứa trong mẫu tìm kiếm. Nếu lệnh này được chuyển thành PREG_OFFSET_CAPTURE, với mỗi lần trùng khớp xảy ra, bù trừ chuỗi ứng dụng cũng sẽ được trả về.
Thông thường, tìm kiếm bắt đầu từ đầu chuỗi chủ đề. Có thể sử dụng bù tham số tùy chọn để chỉ định địa điểm thay thế để từ đó bắt đầu tìm kiếm.
Thí dụ:
Sau đây là đoạn mã, sao chép và dán mã này vào một tệp và xác minh kết quả.
$line = "Vi is the greatest word processor ever created!";
// perform a case-Insensitive search for the word "Vi"
if (preg_match("/\bVi\b/i", $line, $match)) :
print "Match found!";
endif;
?>
Điều này sẽ tạo ra kết quả sau:
Ví dụ 1: xem thử giá trị của biến $matches\
preg_match('/(foo)(bar)(baz)/', 'foobarbaz', $matches, PREG_OFFSET_CAPTURE);
print_r($matches);
?>
Kết quả hiện ra màn hình là:
Ví dụ 2: 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ả hiện ra màn hình là:
Ví dụ 3: Capturing Value - gom nhóm 2 cấp
$subject = "freetuts.net";
$pattern = '/((net))/';
preg_match($pattern, $subject, $matches);
echo '
';
print_r($matches);
echo '
';
Kết quả hiện ra màn hình là:
Ví dụ 4: sử dụng preg_unmatched_as_null
Nếu được thông qua, các mẫu con chưa được so khớp được báo cáo là NULL, nếu không chúng được báo cáo dưới dạng một chuỗi rỗng.
preg_match('/(a)(b)*(c)/', 'ac', $matches);
var_dump($matches);
preg_match('/(a)(b)*(c)/', 'ac', $matches, preg_unmatched_as_null);
var_dump($matches);
?>
Qua bài viết trên chúng tôi đã chỉ cho các bạn cách sử dụng hàm preg_match() trong PHP bạn có thể lấy được bất kì một chuỗi con nào miễn là có một quy tắc để lấy, hàm này không những dùng để lấy chuỗi con dựa vào việc so khớp mà nó còn có tác dụng kiểm tra kết quả so khớp và trả về TRUE/FALSE.
Một số kiến thức về lập trình PHP khác bạn nên xem: