Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh memisahkan rentetan dengan ruang sambil mengekalkan subrentetan yang dipetik dalam Python?

Bagaimanakah saya boleh memisahkan rentetan dengan ruang sambil mengekalkan subrentetan yang dipetik dalam Python?

DDD
DDDasal
2024-11-06 08:58:02961semak imbas

How can I split a string by spaces while preserving quoted substrings in Python?

Memisahkan Rentetan dengan Ruang Semasa Memelihara Subrentetan Dipetik dalam Python

Apabila bekerja dengan rentetan yang mengandungi kedua-dua ruang dan petikan, ia boleh mencabar untuk memisahkan mereka tanpa kehilangan integriti subrentetan yang dipetik. Dalam Python, anda mungkin pada mulanya mempertimbangkan untuk menggunakan kaedah string.split() standard, tetapi ia akan memisahkan rentetan pada setiap ruang, tanpa mengira petikan.

Untuk menangani isu ini, Python menyediakan penyelesaian yang mudah melalui shlexnya modul, khususnya, fungsi split(). Fungsi split() membolehkan anda membahagi rentetan berdasarkan ruang sambil mengabaikan rentetan dalam segmen yang dipetik.

Pertimbangkan rentetan contoh: "ini ialah "ujian"." Untuk memisahkannya menggunakan shlex.split(), cuma panggilnya dengan rentetan sebagai hujah:

<code class="python">import shlex
shlex.split('this is "a test"')</code>

Hasilnya ialah senarai tiga elemen: ['this', 'is', 'a ujian']. Subrentetan yang dipetik dikekalkan sebagai satu elemen.

Anda boleh memperibadikan lagi gelagat shlex.split() dengan menghantar argumen kata kunci posix=False. Ini akan menghalangnya daripada mengalih keluar tanda petikan di sekeliling subrentetan:

<code class="python">shlex.split('this is "a test"', posix=False)</code>

Dalam kes ini, hasilnya ialah: ['this', 'is', '"a test"'].

Atas ialah kandungan terperinci Bagaimanakah saya boleh memisahkan rentetan dengan ruang sambil mengekalkan subrentetan yang dipetik dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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