Menggantikan Aksara Bukan ASCII dengan Ruang dalam Python
Tugas menggantikan aksara bukan ASCII dengan ruang dalam Python mungkin kelihatan mudah, tetapi fungsi terbina dalam yang sering digunakan untuk manipulasi aksara mungkin tidak segera memberikan penyelesaian yang mudah. Mari kita terokai cabaran dan pendekatan alternatif untuk mencapai matlamat ini dengan berkesan.
Penyelesaian Semasa
Dua pendekatan sedia ada dibentangkan dalam soalan:
Space Tunggal Penggantian
Soalan yang ditanya khusus untuk menggantikan semua aksara bukan ASCII dengan satu ruang. Untuk mencapai matlamat ini, kita perlu mengubah suai fungsi remove_non_ascii_1():
<code class="python">def remove_non_ascii_1(text): return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>
Dalam fungsi yang dikemas kini ini, kami menggunakan ungkapan bersyarat untuk menggantikan aksara bukan ASCII dengan satu ruang. Ungkapan ''.join() kemudian menggabungkan aksara yang diubah suai menjadi rentetan tunggal.
Pendekatan Ungkapan Biasa
Ungkapan biasa dalam remove_non_ascii_2() juga boleh dilaraskan untuk ruang tunggal penggantian:
<code class="python">re.sub(r'[^\x00-\x7F]+', ' ', text)</code>
Di sini, pengubah suai ' ' ditambah dalam kurungan segi empat sama untuk memastikan aksara bukan ASCII berturut-turut digantikan dengan satu ruang.
Nota: Fungsi ini beroperasi pada rentetan Unicode. Jika berfungsi dengan rentetan bait, aksara Unicode mesti dinyahkodkan dahulu (cth., sebagai unicode(teks, 'utf-8').
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Aksara Bukan ASCII dengan Ruang dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!