Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengeluarkan Aksara Tidak Boleh Cetak daripada Rentetan Python?
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:
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!