Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah saya boleh mengekstrak teks yang disertakan dalam kurungan segi empat sama dari rentetan menggunakan PHP?
Merakam Teks Dalam Kurungan Segi Empat dalam PHP
Dalam pengaturcaraan, kita sering menghadapi keperluan untuk mengekstrak data tertentu daripada rentetan yang lebih besar. Satu senario biasa ialah menangkap teks yang disertakan dalam kurungan segi empat sama, seperti yang dilihat dalam contoh yang disediakan:
[This] is a [test] string, [eat] my [shorts].
Matlamatnya adalah untuk menukar rentetan ini kepada tatasusunan:
[ '[This]', '[test]', '[eat]', '[shorts]' ]
Sementara asas ungkapan biasa seperti /[.*?]/ mungkin kelihatan mencukupi, ia hanya menangkap contoh pertama kurungan segi empat sama. Untuk mencapai output yang diingini, kami memerlukan pendekatan yang diubah suai.
Penyelesaian Ungkapan Biasa:
Kita boleh menggunakan preg_match_all dengan ungkapan biasa yang diubah suai untuk memadankan semua kemunculan teks dalam kurungan segi empat sama. Kod berikut mencapai ini:
preg_match_all("/\[[^\]]*\]/", $text, $matches); var_dump($matches[0]);
Kod ini menggunakan ungkapan biasa berikut:
Kaedah Alternatif untuk Menanggalkan Kurungan:
Jika kita ingin mengekstrak teks tanpa kurungan, kita boleh mengubah suai ungkapan biasa sedikit:
preg_match_all("/\[([^\]]*)\]/", $text, $matches); var_dump($matches[1]);
Kod ini menggunakan:
Pilihan Ketiga Menggunakan Pengkuantiti "*":
Kaedah alternatif, walaupun lebih perlahan, adalah dengan menggunakan pengkuantiti "*" dan bukannya "[^]":
preg_match_all("/\[(.*?)\]/", $text, $matches); var_dump($matches[1]);
Dengan menggunakan ungkapan biasa ini, kami boleh menangkap teks dengan berkesan dalam kurungan segi empat sama, memberikan kami output yang diingini yang diterangkan dalam pernyataan masalah awal.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengekstrak teks yang disertakan dalam kurungan segi empat sama dari rentetan menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!