Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mengekstrak Substring yang Dipetik dalam PHP, Mengabaikan Petikan Terlepas?

Bagaimanakah Saya Boleh Mengekstrak Substring yang Dipetik dalam PHP, Mengabaikan Petikan Terlepas?

Barbara Streisand
Lepaskan: 2024-11-29 12:54:17
asal
767 orang telah melayarinya

How Can I Extract Quoted Substrings in PHP, Ignoring Escaped Quotes?

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);
Salin selepas log masuk

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
    Salin selepas log masuk
  • Sarisari Petikan Tunggal:

    /'[^'\\]*(?:\\.[^'\\]*)*'/s
    Salin selepas log masuk

Regeks ini membenarkan mana-mana watak yang tidak dilepaskan, termasuk aksara yang dilepaskan (cth., "n" dan "t"), dan jujukan melarikan diri-melarikan diri ("").

Penjelasan:

  • [^"\\]* sepadan dengan sifar atau lebih aksara bukan petikan atau sengkang ke belakang.
  • (?:\\.[^"\\]*)* sepadan dengan sebarang bilangan aksara yang dilepaskan diikuti dengan aksara bukan petikan atau sengkang ke belakang.
  • Pengubah suai mendayakan pemadanan satu baris, yang diperlukan untuk menjangkau berbilang baris.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan