⊗ppPmRgSBh 251 of 447 menu

Thay đổi hành vi của preg_match_all trong PHP

Bằng cách sử dụng tham số thứ tư của hàm preg_match_all, bạn có thể thay đổi cách nhóm các nhóm bắt giữ.

Hãy xem các giá trị mà tham số này có thể nhận:

Tham số Mô tả
PREG_PATTERN_ORDER Chế độ mặc định. Kết quả được nhóm theo nhóm bắt giữ - phần tử mảng số 0 chứa các nhóm bắt giữ số 0, phần tử mảng số 1 chứa các nhóm bắt giữ số 1, và cứ tiếp tục như vậy.
PREG_SET_ORDER Kết quả được nhóm theo các 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 bắt giữ tìm được.

Bây giờ hãy xem cách sử dụng tham số này qua các ví dụ:

Ví dụ

Trích xuất tất cả dấu 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); print_r($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 theo các 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); print_r($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' ]

Bài tập thực hành

Cho một chuỗi chứa ngày tháng:

<?php $str = '2023-10-29 2024-11-30 2025-12-31'; ?>

Tìm tất cả các ngày, tách riêng năm, tháng và ngày vào các nhóm bắt giữ riêng biệt. Hãy làm sao cho vào mảng con đầu tiên là ngày thứ nhất cùng với các nhóm bắt giữ của nó, vào mảng con thứ hai - ngày thứ hai với các nhóm bắt giữ của nó, và cứ tiếp tục như vậy.

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