Rumah >pembangunan bahagian belakang >tutorial php >Ungkapan Biasa PHP: Bagaimana untuk mengekstrak berbilang subrentetan daripada rentetan
Dalam PHP, ungkapan biasa ialah alat padanan rentetan yang biasa digunakan. Melalui ungkapan biasa, kami boleh mengekstrak maklumat yang diperlukan dengan mudah daripada rentetan. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengekstrak berbilang subrentetan daripada rentetan.
preg_match_all($pattern, $string, &$matches, $flags = PREG_PATTERN_ORDER, $offset = 0);
di mana $pattern mewakili ungkapan biasa yang perlu dipadankan, $string mewakili rentetan yang perlu dipadankan dan $matches ialah tatasusunan yang digunakan untuk menyimpan semua hasil sepadan. $flags mewakili bendera perlawanan, yang boleh menjadi PREG_PATTERN_ORDER atau PREG_SET_ORDER. $offset mewakili kedudukan permulaan padanan, yang lalai kepada 0.
Berikut ialah contoh khusus Katakan kita perlu memadankan semua nombor daripada rentetan:
$str = 'abc123def456ghi789jkl'; preg_match_all('/d+/', $str, $matches); print_r($matches[0]);
Hasil keluarannya ialah:
Array ( [0] => 123 [1] => 456 [2] => 789 )
Seperti yang dapat dilihat daripada hasilnya. , Dalam tatasusunan $matches yang dikembalikan oleh fungsi preg_match_all, elemen pertama mewakili hasil yang dipadankan dengan keseluruhan ungkapan biasa, dan elemen seterusnya mewakili hasil yang sepadan dengan setiap kurungan dalam ungkapan biasa.
$str = 'abc123def456ghi789jkl'; preg_match_all('/([a-z]+)(d+)/', $str, $matches); print_r($matches);
Hasil keluarannya ialah:
Array ( [0] => Array ( [0] => abc123 [1] => def456 [2] => ghi789 ) [1] => Array ( [0] => abc [1] => def [2] => ghi ) [2] => Array ( [0] => 123 [1] => 456 [2] => 789 ) )
Seperti yang boleh dilihat daripada hasil, dalam tatasusunan $matches Elemen pertama ialah hasil padanan keseluruhan ungkapan biasa, dan elemen berikut sepadan dengan hasil padanan setiap kurungan dalam ungkapan biasa. Dengan cara ini, kita boleh mengekstrak berbilang subrentetan dengan mudah daripada rentetan itu.
Untuk menyelesaikan masalah ini, kita boleh menggunakan mod tidak tamak, yang sepadan dengan sesedikit mungkin aksara. Dalam ungkapan biasa, gunakan tanda soal untuk menunjukkan corak yang tidak tamak. Contohnya, untuk memadankan "aa" dan "bb" dalam contoh di atas, anda akan menggunakan ungkapan biasa "/a.+?b/".
$str = 'aabbcc'; preg_match_all('/a.+?b/', $str, $matches); print_r($matches[0]);
Hasil keluarannya ialah:
Array ( [0] => aa [1] => bb )
Seperti yang dapat dilihat daripada keputusan, mod tidak tamak boleh membantu kami memadankan hasil yang kami perlukan dengan tepat.
Ringkasan
Artikel ini menerangkan cara menggunakan ungkapan biasa PHP untuk mengekstrak berbilang subrentetan daripada rentetan. Melalui fungsi preg_match_all, kumpulan kurungan dan mod tidak tamak, kami boleh menangani pelbagai situasi secara fleksibel dan mengekstrak maklumat yang diperlukan. Dalam pembangunan sebenar, menggunakan ungkapan biasa boleh meningkatkan kecekapan dan kadar kejayaan padanan rentetan.
Atas ialah kandungan terperinci Ungkapan Biasa PHP: Bagaimana untuk mengekstrak berbilang subrentetan daripada rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!