Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menulis Ungkapan Biasa PHP untuk Mengabaikan Petikan Terlepas Dalam Rentetan Petikan?
PHP: Ungkapan Biasa untuk Mengabaikan Petikan yang Dilepaskan dalam Petikan
Dalam senario ini, anda bertujuan untuk mengubah suai ungkapan biasa sedia ada yang mengekstrak rentetan yang disertakan dengan petikan tunggal (') atau berganda (") untuk mengabaikan petikan yang terlepas dalam petikan tersebut. Matlamatnya adalah untuk membenarkan data antara petikan tunggal untuk mengabaikan petikan tunggal yang terlepas (') dan data antara petikan berganda untuk mengabaikan petikan berganda yang terlepas (").
Penyelesaian:
Untuk mencapai ini, anda boleh menggunakan ungkapan biasa berikut, dioptimumkan untuk kecekapan:
Petikan Berganda Rentetan:
"[^"\\]*(?:\\.[^"\\]*)*"/s
Rentetan Petikan Tunggal:
/'[^'\\]*(?:\\.[^'\\]*)*'/s
Penjelasan:
Rentetan biasa ini ungkapan terdiri daripada yang berikut komponen:
Dengan menggabungkan corak ini, regex berkesan menangkap rentetan yang dipetik sambil mengabaikan petikan yang terlepas.
Contoh Kod PHP:
$re_dq = '/"[^"\\]*(?:\\.[^"\\]*)*"/s'; $re_sq = "/'[^'\\]*(?:\\.[^'\\]*)*'/s"; $code = preg_replace_callback($re_dq, array($this, '_getPHPString'), $code); $code = preg_replace_callback($re_sq, array($this, '_getPHPString'), $code);
Kod ini kini akan mengeluarkan rentetan yang dipetik dengan betul, mengabaikan melarikan petikan dalam diri mereka.
Atas ialah kandungan terperinci Bagaimana untuk Menulis Ungkapan Biasa PHP untuk Mengabaikan Petikan Terlepas Dalam Rentetan Petikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!