Pisah Rentetan kepada Perkataan dengan Pembatas Sempadan Berbilang Kata
Apabila bekerja dengan data teks, selalunya perlu untuk membahagikan teks kepada perkataan individu . Walau bagaimanapun, pemisahan rentetan menggunakan pembatas boleh menjadi mencabar apabila bekerja dengan teks yang merangkumi pelbagai pembatas yang berpotensi, seperti koma, noktah dan sempang.
Python's str.split() Had
Kaedah str.split() terbina dalam Python biasanya digunakan untuk membelah rentetan. Walau bagaimanapun, ia hanya menerima satu pembatas sebagai hujah. Dalam contoh yang disediakan, kod berikut akan membahagikan ayat pada ruang kosong tetapi meninggalkan tanda baca di tempatnya:
text = "Hey, you - what are you doing here!?" words = text.split() ['hey', 'you - what', 'are', 'you', 'doing', 'here!?']
Penyelesaian: Ungkapan Biasa dengan re.split()
Untuk memisahkan rentetan dengan berkesan berbilang pembatas, ungkapan biasa dan kaedah re.split() boleh digunakan. re.split() menerima corak sebagai hujah dan membelah rentetan berdasarkan semua kemunculan corak itu.
Kunci untuk membelah perkataan dengan berbilang pembatas adalah untuk menentukan corak yang sepadan dengan mana-mana pembatas yang berpotensi. Corak berikut, 'W ', sepadan dengan mana-mana aksara bukan perkataan:
import re text = "Hey, you - what are you doing here!?" words = re.split('\W+', text) print(words)
Ini akan menghasilkan output yang diingini:
['hey', 'you', 'what', 'are', 'you', 'doing', 'here']
Menangkap Kumpulan
Jika mahu, menangkap kumpulan boleh digunakan untuk mengekstrak bukan sahaja perkataan tetapi juga pembatas. Sebagai contoh, corak berikut termasuk kumpulan penangkapan dalam kurungan, yang akan menangkap sebarang aksara bukan perkataan:
text = "Hey, you - what are you doing here!?" words = re.split('(\W+)', text) print(words)
Ini akan menghasilkan senarai yang merangkumi kedua-dua perkataan dan pembatas:
['Hey', ', ', 'you', ' - ', 'what', ' ', 'are', ' ', 'you', ' ', 'doing', ' ', 'here!?']
Kesimpulan
Dengan memanfaatkan ungkapan biasa dan kaedah re.split(), adalah mungkin untuk memisahkan rentetan dengan cekap kepada perkataan walaupun teks mengandungi pelbagai pembatas yang berpotensi. Teknik ini amat berguna untuk pemprosesan bahasa semula jadi dan tugasan analisis teks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membahagikan Rentetan dengan Cekap kepada Perkataan Menggunakan Berbilang Pembatas dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!