Mengekstrak Teks yang Dilampirkan dalam Kurungan Segiempat dalam PHP
Cabaran untuk menangkap teks antara kurungan segi empat sama dalam PHP memerlukan pendekatan yang bernuansa. Percubaan biasa, menggunakan /[.*?]/ sebagai regex, hanya mendapatkan semula contoh pertama, meninggalkan anda dengan hasil yang tidak lengkap.
Menangkap Kepungan:
Untuk mengatasi had ini, gunakan ungkapan biasa yang merangkumi keseluruhan teks dalam kurungan segi empat sama. Pertimbangkan corak:
$text = '[This] is a [test] string, [eat] my [shorts].'; preg_match_all("/\[[^\]]*\]/", $text, $matches);
Di sini, /[1]/ berfungsi sebagai regex yang sepadan dengan mana-mana rentetan yang disertakan dalam kurungan segi empat sama. Aksara karet (^) sepadan dengan permulaan rentetan, diikuti dengan kurungan. Bahagian 2 menandakan watak yang bukan kurungan. Asterisk () sepadan dengan sebarang bilangan kejadian dan kurungan mengekor menyimpulkan corak.
Menjalankan regex ini pada teks yang disediakan akan menghasilkan:
Array ( [0] => [This] [1] => [test] [2] => [eat] [3] => [shorts] )
Menangkap Teks Di Dalam:
Sebagai alternatif, anda mungkin ingin mengekstrak teks tanpa kurungan. Ini memerlukan regex yang diubah suai:
$text = '[This] is a [test] string, [eat] my [shorts].'; preg_match_all("/\[([^\]]*)\]/", $text, $matches);
Dalam regex ini, (3*) menangkap sebarang aksara dalam kurungan segi empat sama, dengan berkesan mengalih keluar kurungan daripada output. Anda akan memperoleh:
Array ( [0] => This [1] => test [2] => eat [3] => shorts )
Ingat bahawa regex ini menganggap kurungan segi empat sama tidak bersarang dalam teks.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak teks yang disertakan dalam kurungan persegi menggunakan ungkapan biasa PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!