Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggantikan Aksara Bukan ASCII dengan Ruang dalam Python?

Bagaimana untuk Menggantikan Aksara Bukan ASCII dengan Ruang dalam Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-01 16:34:02468semak imbas

How to Replace Non-ASCII Characters with Spaces in Python?

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:

  • remove_non_ascii_1() mengalih keluar semua bukan ASCII aksara.
  • remove_non_ascii_2() menggantikan aksara bukan ASCII dengan ruang, menggunakan berbilang ruang untuk aksara dengan titik kod yang lebih besar.

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!

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