Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengekstrak Substring yang Dipetik dalam PHP, Mengabaikan Petikan Terlepas?
Tidak Termasuk Petikan Melarikan Diri dalam PHP Regex
Dalam PHP, mengekstrak subrentetan yang disertakan dengan petikan tunggal atau berganda memerlukan perhatian yang teliti untuk melepaskan jujukan. Untuk mengabaikan petikan yang dilepaskan dalam rentetan yang dipadankan, kita boleh menggunakan ungkapan biasa lanjutan.
Pertimbangkan kod berikut:
$code = preg_replace_callback('/"(.*?)"/', array(&$this, '_getPHPString'), $code); $code = preg_replace_callback("#'(.*?)'#", array(&$this, '_getPHPString'), $code);
regeks ini sepadan dengan subrentetan antara petikan, tetapi ia gagal mengecualikan petikan yang terlepas . Untuk menangani isu ini, kami menggunakan corak regex yang lebih komprehensif:
Regex Disyorkan:
Petikan Berganda Subrentetan:
"[^"\\]*(?:\\.[^"\\]*)*"/s
Sarisari Petikan Tunggal:
/'[^'\\]*(?:\\.[^'\\]*)*'/s
Regeks ini membenarkan mana-mana watak yang tidak dilepaskan, termasuk aksara yang dilepaskan (cth., "n" dan "t"), dan jujukan melarikan diri-melarikan diri ("").
Penjelasan:
Dengan menggabungkan regeks ini, anda boleh mengekstrak subrentetan dengan tepat yang termasuk aksara melarikan diri dalam rentetan yang dipetik.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Substring yang Dipetik dalam PHP, Mengabaikan Petikan Terlepas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!