Rumah  >  Artikel  >  pembangunan bahagian belakang  >  fungsi preg_match_all() dalam PHP: Cara memadankan berbilang rentetan menggunakan ungkapan biasa

fungsi preg_match_all() dalam PHP: Cara memadankan berbilang rentetan menggunakan ungkapan biasa

WBOY
WBOYasal
2023-11-04 13:06:56981semak imbas

fungsi preg_match_all() dalam PHP: Cara memadankan berbilang rentetan menggunakan ungkapan biasa

preg_match_all() fungsi dalam PHP: Bagaimana untuk menggunakan ungkapan biasa untuk memadankan berbilang rentetan, contoh kod khusus diperlukan

Ungkapan Biasa Ia adalah alat yang digunakan untuk menerangkan corak teks dan boleh digunakan untuk memadankan, mencari atau menggantikan rentetan dalam teks yang sepadan dengan corak tertentu. Fungsi preg_match_all() dalam PHP ialah fungsi yang sangat berguna yang boleh memadankan berbilang rentetan menggunakan ungkapan biasa.

preg_match_all() Sintaks asas fungsi adalah seperti berikut:

preg_match_all(string $pattern, string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0]]]) : int

Antaranya, $pattern ialah corak ungkapan biasa, $subjek ialah rentetan yang akan dipadankan, dan $matches ialah parameter Pilihan, digunakan untuk menyimpan hasil padanan, $flags ialah parameter bendera pilihan, $offset ialah offset pilihan, digunakan untuk menentukan kedudukan permulaan perlawanan.

Di bawah kami menggunakan contoh khusus untuk menggambarkan cara menggunakan fungsi preg_match_all() untuk memadankan berbilang rentetan.

Andaikan kami mempunyai rentetan yang mengandungi beberapa data tarikh dan kami ingin mengekstrak semua tarikh. Kami tahu bahawa format biasa untuk tarikh ialah "yyyy-mm-dd", jadi kami boleh menggunakan ungkapan biasa untuk dipadankan.

Berikut ialah kod sampel:

<?php
$str = "2022-01-01 is a holiday. 2022-02-14 is Valentine's Day. 2022-03-08 is International Women's Day.";

// 使用正则表达式提取日期
$pattern = "/d{4}-d{2}-d{2}/";
preg_match_all($pattern, $str, $matches);

// 输出匹配结果
foreach ($matches[0] as $date) {
    echo $date . "
";
}
?>

Dalam kod di atas, kami mula-mula menentukan rentetan $str yang mengandungi data tarikh. Kemudian, kami menggunakan ungkapan biasa "d{4}-d{2}-d{2}" untuk memadankan tarikh. "d" dalam ungkapan biasa bermaksud memadankan sebarang nombor, "d{4}" bermaksud memadankan empat nombor dan "d{2}" bermaksud memadankan dua nombor. Oleh itu, keseluruhan ungkapan biasa boleh memadankan tarikh dalam format "yyyy-mm-dd".

Seterusnya, kami memanggil fungsi preg_match_all(), menghantar ungkapan biasa, rentetan dan tatasusunan $matches kosong. Fungsi ini akan menyimpan hasil yang sepadan dalam tatasusunan $matches.

Akhir sekali, kami menggunakan gelung foreach untuk melintasi semua hasil padanan dalam tatasusunan $matches dan mengeluarkannya ke skrin.

Jalankan kod di atas, output adalah seperti berikut:

2022-01-01
2022-02-14
2022-03-08

Kami berjaya mengekstrak semua tarikh dalam rentetan.

Melalui contoh ini, kita dapat melihat dengan jelas penggunaan fungsi preg_match_all() apabila memadankan berbilang rentetan. Anda hanya perlu mentakrifkan corak ungkapan biasa, hantar rentetan untuk dipadankan dan tatasusunan kosong ke dalam fungsi, dan fungsi itu secara automatik akan menyimpan hasil yang sepadan dalam tatasusunan.

Selain contoh di atas, fungsi preg_match_all() juga boleh digunakan untuk memadankan jenis rentetan lain, seperti alamat e-mel, nombor telefon, dsb. Hanya tentukan corak ungkapan biasa yang sepadan seperti yang diperlukan.

Ringkasnya, fungsi preg_match_all() dalam PHP ialah fungsi yang sangat berkuasa dan fleksibel yang boleh digunakan dengan berkesan untuk memadankan berbilang rentetan. Dengan mentakrifkan corak ungkapan biasa, kita boleh mengekstrak rentetan yang kita inginkan dengan mudah. Saya harap kandungan artikel ini dapat membantu semua orang memahami dan menggunakan fungsi preg_match_all().

Atas ialah kandungan terperinci fungsi preg_match_all() dalam PHP: Cara memadankan berbilang rentetan menggunakan ungkapan biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn