Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengeluarkan Aksara Tidak Boleh Cetak daripada Rentetan Python?

Bagaimana untuk Mengeluarkan Aksara Tidak Boleh Cetak daripada Rentetan Python?

Susan Sarandon
Lepaskan: 2024-10-22 06:58:30
asal
490 orang telah melayarinya

How to Remove Non-Printable Characters from Python Strings?

Mengalih keluar Aksara Tidak Boleh Cetak daripada Rentetan dalam Python

Soalan:

Dalam Perl, aksara yang tidak boleh dicetak boleh dialih keluar menggunakan ungkapan regex s/[^[:print:]]//g. Walau bagaimanapun, dalam Python, kelas [:print:] tidak disokong. Bagaimanakah kita boleh mencapai kefungsian serupa dalam Python yang mengendalikan kedua-dua aksara ASCII dan Unicode?

Jawapan:

Disebabkan batasan Python dalam mengesan kebolehcetakan, kami boleh membina watak kami sendiri kelas menggunakan modul unicodedata.

<code class="python">import unicodedata, re, itertools, sys

# Generate a list of all characters
all_chars = (chr(i) for i in range(sys.maxunicode))

# Category of control characters
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)

# Escape the control characters for regular expression matching
control_char_re = re.compile('[%s]' % re.escape(control_chars))

# Function to remove control characters from a string
def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
Salin selepas log masuk

Untuk Python 2:

<code class="python">import unicodedata, re, sys

# Generate a list of all characters
all_chars = (unichr(i) for i in xrange(sys.maxunicode))

# Category of control characters
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)

# Escape the control characters for regular expression matching
control_char_re = re.compile('[%s]' % re.escape(control_chars))

# Function to remove control characters from a string
def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
Salin selepas log masuk

Pilihan Lanjutan:

Untuk penyingkiran yang lebih komprehensif, kategori tambahan boleh disertakan, walaupun ia boleh menjejaskan prestasi.

Kategori dan Kiraan Watak:

  • Sk (kawalan): 65
  • Cf (format): 161
  • Cs (pengganti): 2048
  • Co (penggunaan persendirian): 137468
  • Cn (belum diserahkan): 836601

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Aksara Tidak Boleh Cetak daripada Rentetan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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