Hàm preg_match

Hàm preg_match tìm kiếm các kết quả khớp với biểu thức chính quy trong một chuỗi. Tham số đầu tiên nhận mẫu biểu thức chính quy, tham số thứ hai - chuỗi để tìm kiếm, tham số thứ ba (không bắt buộc) - mảng để lưu các kết quả khớp tìm thấy, tham số thứ tư (không bắt buộc) - các cờ, tham số thứ năm (không bắt buộc) - độ lệch để bắt đầu tìm kiếm.

Cú pháp

phppreg_match(pattern, subject, [matches], [flags], [offset]);

Các cờ

Cờ Hằng số Mô tả
PREG_PATTERN_ORDER 1 Kết quả được sắp xếp theo mẫu (mặc định)
PREG_SET_ORDER 2 Kết quả được sắp xếp theo từng bộ kết quả khớp
PREG_OFFSET_CAPTURE 256 Trả về vị trí của kết quả khớp trong chuỗi
PREG_UNMATCHED_AS_NULL 512 Các mẫu con không khớp được trả về dưới dạng NULL

Ví dụ

Kiểm tra xem một chuỗi có chứa chữ số không:

php<?php
  $res = preg_match('/\d+/', 'abc123');
  echo $res;
?>

Kết quả thực thi mã:

php1

Ví dụ

Trích xuất tất cả chữ số từ chuỗi vào một mảng:

php<?php
  preg_match('/\d+/', 'abc123', $matches);
  var_dump($matches);
?>

Kết quả thực thi mã:

php[0 => '123']

Ví dụ

Sử dụng các nhóm được đặt tên trong biểu thức chính quy:

php<?php
  preg_match('/(?P<name>\w+)\s+(?P<age>\d+)/', 'John 25', $matches);
  var_dump($matches);
?>

Kết quả thực thi mã:

php[
  0 => 'John 25',
  'name' => 'John',
  1 => 'John',
  'age' => '25',
  2 => '25'
]

Ví dụ

Sử dụng cờ PREG_OFFSET_CAPTURE để lấy vị trí kết quả khớp:

php<?php
  preg_match('/\d+/', 'abc123', $matches, PREG_OFFSET_CAPTURE);
  var_dump($matches);
?>

Kết quả thực thi mã:

php[
  0 => [
    0 => '123',
    1 => 3
  ]
]

Ví dụ

Tìm kiếm với việc chỉ định độ lệch (offset):

php<?php
  preg_match('/\d+/', '123abc456', $matches, 0, 3);
  var_dump($matches);
?>

Kết quả thực thi mã:

php[0 => '456']

Ví dụ

Kiểm tra tính hợp lệ của địa chỉ email:

php<?php
  $email = 'test@example.com';
  $res = preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email);
  echo $res ? 'Valid' : 'Invalid';
?>

Kết quả thực thi mã:

php'Valid'

Xem thêm

  • hàm preg_match_all,
    hàm này tìm tất cả các kết quả khớp trong một chuỗi
  • hàm preg_replace,
    hàm này thực hiện thay thế theo biểu thức chính quy