200 of 410 menu

Hàm preg_match_all

Hàm preg_match_all thực hiện tìm kiếm toàn cục mẫu trong một chuỗi. Tham số đầu tiên nhận biểu thức chính quy, tham số thứ hai - chuỗi để tìm kiếm, tham số thứ ba - mảng để lưu kết quả. Tham số thứ tư không bắt buộc xác định cấu trúc dữ liệu trả về, và tham số thứ năm không bắt buộc - vị trí bắt đầu tìm kiếm.

Cú pháp

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

Cờ (Flags)

Hãy xem, tham số thứ tư có thể nhận những giá trị nào:

Tham số Mô tả
PREG_PATTERN_ORDER Chế độ mặc định. Kết quả được nhóm theo các nhóm (capturing groups) - phần tử số không của mảng chứa các nhóm số không, phần tử thứ nhất của mảng chứa các nhóm thứ nhất và cứ tiếp tục như vậy.
PREG_SET_ORDER Kết quả được nhóm theo từng lần khớp - mỗi phần tử của mảng chứa một mảng với các nhóm đã tìm thấy.
PREG_OFFSET_CAPTURE Cho mỗi kết quả khớp, vị trí trong chuỗi được trả về. Mỗi kết quả là một mảng, trong đó phần tử số không chứa chuỗi khớp, còn phần tử thứ nhất - vị trí (offset) của nó.
PREG_UNMATCHED_AS_NULL Các nhóm không khớp được trả về dưới dạng null thay vì chuỗi rỗng.

Ví dụ

Hãy tìm tất cả các chữ số trong chuỗi:

<?php $str = 'abc 123 def 456'; preg_match_all('/\d+/', $str, $res); var_dump($res[0]); ?>

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

['123', '456']

Ví dụ

Hãy tìm tất cả các chữ cái 'a' trong chuỗi:

<?php $str = 'banana'; preg_match_all('/a/', $str, $res); var_dump($res[0]); ?>

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

['a', 'a', 'a']

Ví dụ

Hãy trích xuất tất cả các mốc thời gian từ chuỗi và các thành phần của chúng:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res); var_dump($res); ?>

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

[ 0 => ['12:01:02', '13:03:04', '14:05:06'], 1 => ['12', '13', '14'], 2 => ['01', '03', '05'], 3 => ['02', '04', '06'] ]

Ví dụ

Và bây giờ hãy sử dụng cờ PREG_SET_ORDER để nhóm kết quả theo từng lần khớp:

<?php $time = '12:01:02 13:03:04 14:05:06'; preg_match_all('#(\d\d):(\d\d):(\d\d)#', $time, $res, PREG_SET_ORDER); var_dump($res); ?>

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

[ 0 => '12:01:02', 1 => '12', 2 => '01', 3 => '02' ], [ 0 => '13:03:04', 1 => '13', 2 => '03', 3 => '04' ], [ 0 => '14:05:06', 1 => '14', 2 => '05', 3 => '06' ]

Xem thêm

  • hàm preg_match,
    hàm tìm kiếm kết quả khớp đầu tiên với biểu thức chính quy
  • hàm preg_replace,
    hàm thực hiện tìm kiếm và thay thế theo biểu thức chính quy
Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối