Bagaimana untuk Menghapuskan Aksara Tidak Boleh Cetak daripada Rentetan dalam Python?

DDD
Lepaskan: 2024-10-22 06:55:02
asal
427 orang telah melayarinya

How to Strip Non-Printable Characters from Strings in Python?

Melucutkan Aksara Tidak Boleh Cetak daripada Rentetan dalam Python

Dalam Perl, s/[^[:print:]]// g regex secara berkesan mengalih keluar semua aksara yang tidak boleh dicetak daripada rentetan. Walau bagaimanapun, dalam Python, tiada kelas regex POSIX yang setara, menyebabkan sesetengah orang tertanya-tanya bagaimana untuk mencapai tugas yang sama.

Memahami Unicode

Cabarannya terletak pada pengendalian aksara Unicode , kerana kaedah string.printable mungkin menanggalkannya secara tidak sengaja.

Membina Kelas Aksara Tersuai

Untuk menangani perkara ini, kami boleh membina kelas aksara tersuai menggunakan unicodedata modul. Fungsi unicodedata.category() menyediakan cerapan ke dalam kategori aksara. Contohnya, kita boleh mentakrifkan kelas aksara yang dipanggil control_characters untuk mewakili aksara yang tidak boleh dicetak seperti aksara kawalan dan aksara pengganti dengan menapis kategori tersebut daripada set aksara Unicode.

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

categories = {'Cc', 'Cf', 'Cs'}  # Include desired categories here
control_chars = ''.join(chr(i) for i in range(sys.maxunicode) if unicodedata.category(chr(i)) in categories)
control_char_re = re.compile('[%s]' % re.escape(control_chars))</code>
Salin selepas log masuk

Pendekatan ini menawarkan kecekapan yang lebih baik berbanding dengan lelaran atas rentetan.

<code class="python">def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
Salin selepas log masuk

Penyesuaian Tambahan

Untuk senario yang menapis kategori tambahan (cth., aksara penggunaan persendirian) diperlukan, anda boleh mengembangkan kelas aksara sewajarnya.

<code class="python">categories.add('Co')  # Add private-use characters
# Rebuild the character class and regex</code>
Salin selepas log masuk

Dengan menggunakan pendekatan ini, anda boleh menanggalkan aksara tidak boleh cetak secara berkesan daripada rentetan Unicode dalam Python, memenuhi kedua-dua kes penggunaan asas dan tersuai.

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

sumber: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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!