Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memisahkan Rentetan kepada Perkataan Semasa Memelihara Frasa Petikan?

Bagaimana untuk Memisahkan Rentetan kepada Perkataan Semasa Memelihara Frasa Petikan?

Susan Sarandon
Lepaskan: 2024-12-06 02:59:17
asal
979 orang telah melayarinya

How to Split a String into Words While Preserving Quoted Phrases?

Cara Memisahkan Rentetan dengan Perkataan, Memelihara Teks Petikan

Untuk rentetan yang diberi "Lorem ipsum "dolor sit amet" consectetur "adipiscing elit " dolor," kami mencari kaedah untuk meletupkannya ke dalam tatasusunan, mengekalkan integriti frasa yang dipetik. Menggunakan kod yang disediakan:

$mytext = "Lorem ipsum %22dolor sit amet%22 consectetur %22adipiscing elit%22 dolor"
$noquotes = str_replace("%22", "", $mytext");
$newarray = explode(" ", $noquotes);
Salin selepas log masuk

mengakibatkan perkataan individu terpecah. Untuk menangani perkara ini, kami memanfaatkan ungkapan biasa:

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

regeks ini sepadan sama ada rentetan yang dipetik atau aksara bukan ruang putih. Rentetan yang dipetik boleh mengandungi petikan berganda (") yang dilepaskan, dan teknik ini menyesuaikannya. Hasilnya:

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

)
Salin selepas log masuk

Penjelasan:

Reeks boleh dipecahkan kepada komponennya:

  • `" # Padan dengan aksara petikan berganda ("
  • (?: # Mulakan bukan tangkap kumpulan 1
  • # Padan dengan aksara sengkang ke belakang ()
  • . # Padankan mana-mana watak kecuali pemisah baris
  • |. # ATAU
  • 1 # Padan dengan mana-mana aksara kecuali dan "
  • )* # Tamatkan kumpulan bukan tangkap 1 dan ulangi sifar atau lebih kali
  • " # Padan dengan aksara petikan berganda ("
  • | # ATAU
  • S # Padan dengan satu atau lebih bukan ruang putih watak

  1. "

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan kepada Perkataan Semasa Memelihara 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