Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Membahagikan Rentetan kepada Perkataan Sambil Mengekalkan Frasa Petikan?

Bagaimanakah Saya Boleh Membahagikan Rentetan kepada Perkataan Sambil Mengekalkan Frasa Petikan?

Linda Hamilton
Lepaskan: 2024-12-12 16:20:09
asal
804 orang telah melayarinya

How Can I Split a String into Words While Keeping Quoted Phrases Intact?

Memisahkan Rentetan sambil Memelihara Frasa Petikan

Tugasnya adalah untuk meletupkan rentetan yang diberikan ke dalam susunan perkataan, dengan keperluan unik yang dipetik frasa dianggap sebagai unit tunggal.

Untuk mencapai matlamat ini, satu pendekatan melibatkan penggunaan biasa padanan ungkapan. Corak yang sesuai untuk menangkap kedua-dua frasa yang dipetik dan perkataan individu ialah:

"(?:\.|[^\"])*"|\S+
Salin selepas log masuk

Corak ini terdiri daripada dua bahagian yang dipisahkan oleh operator gantian (|):

  1. "(?: \.|[^\"])*": Ini sepadan dengan rentetan yang disertakan dalam petikan berganda ("). Ia juga mengambil kira petikan yang dilepaskan () dalam teks yang dipetik menggunakan kumpulan bukan menangkap 1.
  2. S : Ini sepadan dengan satu atau lebih aksara bukan ruang putih, yang mewakili perkataan individu.

Untuk menggunakan corak ini dalam PHP, seseorang boleh menggunakan preg_match_all(...):

$text = 'Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor';
preg_match_all('/"(?:\.|[^\"])*"|\S+/', $text, $matches);
Salin selepas log masuk

Ini akan isikan tatasusunan $matches dengan tatasusunan semua padanan yang ditangkap, di mana frasa yang dipetik akan diasingkan sebagai elemen tunggal.

Sebagai contoh, dengan rentetan input yang disediakan:

Lorem ipsum "dolor sit amet" consectetur "adipiscing \"elit" dolor
Salin selepas log masuk

Output bagi preg_match_all(...) akan menjadi:

Array
(
    [0] => Array
        (
            [0] => Lorem
            [1] => ipsum
            [2] => "dolor sit amet"
            [3] => consectetur
            [4] => "adipiscing \"elit"
            [5] => dolor
        )
)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Rentetan kepada Perkataan Sambil Mengekalkan Frasa Petikan?. 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