Fungsi preg_match_all
Fungsi preg_match_all melaksanakan carian global corak dalam rentetan. Parameter pertama ialah ungkapan biasa, parameter kedua ialah rentetan untuk dicari, parameter ketiga ialah tatasusunan untuk menyimpan hasil. Parameter keempat pilihan menentukan struktur pulangan, dan parameter kelima pilihan ialah ofset permulaan carian.
Sintaks
preg_match_all(pattern, subject, matches, [flags], [offset]);
Bendera
Mari kita lihat nilai yang boleh diambil oleh parameter keempat:
| Parameter | Penerangan |
|---|---|
PREG_PATTERN_ORDER |
Mod lalai. Hasil dikumpulkan mengikut kelompok - elemen sifar tatasusunan mengandungi kelompok sifar, elemen pertama tatasusunan mengandungi kelompok pertama dan seterusnya. |
PREG_SET_ORDER |
Hasil dikumpulkan mengikut padanan - setiap elemen tatasusunan mengandungi tatasusunan dengan kelompok yang ditemui. |
PREG_OFFSET_CAPTURE |
Untuk setiap padanan, kedudukan dalam rentetan dipulangkan. Setiap hasil ialah tatasusunan di mana elemen sifar mengandungi padanan, dan yang pertama - ofsetnya. |
PREG_UNMATCHED_AS_NULL |
Kelompok yang tidak sepadan dipulangkan sebagai null dan bukannya
rentetan kosong.
|
Contoh
Mari cari semua digit dalam rentetan:
<?php
$str = 'abc 123 def 456';
preg_match_all('/\d+/', $str, $res);
var_dump($res[0]);
?>
Hasil pelaksanaan kod:
['123', '456']
Contoh
Mari cari semua huruf 'a' dalam rentetan:
<?php
$str = 'banana';
preg_match_all('/a/', $str, $res);
var_dump($res[0]);
?>
Hasil pelaksanaan kod:
['a', 'a', 'a']
Contoh
Mari ekstrak semua cap masa dari rentetan dan komponennya:
<?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);
?>
Hasil pelaksanaan kod:
[
0 => ['12:01:02', '13:03:04', '14:05:06'],
1 => ['12', '13', '14'],
2 => ['01', '03', '05'],
3 => ['02', '04', '06']
]
Contoh
Dan sekarang gunakan bendera PREG_SET_ORDER
untuk pengelompokan mengikut padanan:
<?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);
?>
Hasil pelaksanaan kod:
[
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'
]
Lihat juga
-
fungsi
preg_match,
yang mencari padanan pertama dengan ungkapan biasa -
fungsi
preg_replace,
yang melaksanakan carian dan gantian dengan ungkapan biasa