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

Bagaimana untuk Mengeluarkan Aksara Tidak Boleh Cetak daripada Rentetan Python?

Susan Sarandon
Susan Sarandonasal
2024-10-22 06:58:30305semak imbas

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>

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>

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