Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengalih Keluar Aksara Bukan ASCII Secara Selektif Memelihara Ruang dan Tempoh?
Penyingkiran Terpilih Aksara Bukan ASCII
Bekerja dengan data teks selalunya melibatkan keperluan untuk mengalih keluar aksara bukan ASCII, sambil mengekalkan simbol tertentu seperti ruang dan noktah. Walaupun kaedah penapisan asas boleh mengalih keluar semua aksara bukan ASCII, ini mungkin tidak diingini dalam sesetengah kes.
Mari pertimbangkan kod berikut:
<code class="python">def onlyascii(char): if ord(char) < 48 or ord(char) > 127: return '' else: return char</code>
Kod ini mengalih keluar semua aksara dengan nilai ASCII kurang daripada 48 atau lebih daripada 127, dengan berkesan menanggalkan teks aksara bukan ASCII. Walau bagaimanapun, ia juga mengalih keluar ruang (ASCII 32) dan noktah (ASCII 46).
Untuk mengalih keluar aksara bukan ASCII secara selektif sambil mengekalkan ruang dan noktah, kami boleh memanfaatkan modul string.printable Python:
<code class="python">import string printable = set(string.printable) filtered_data = filter(lambda x: x in printable, data)</code>
Set string.printable mengandungi semua aksara boleh cetak pada sistem, termasuk digit, huruf, simbol, ruang dan noktah. Menggunakan set ini sebagai penapis, kita boleh mengalih keluar semua aksara yang tidak boleh dicetak daripada rentetan.
Sebagai contoh, jika kita mempunyai rentetan "somex00string. withx15 aksara lucu":
<code class="python">s = "some\x00string. with\x15 funny characters" ''.join(filter(lambda x: x in printable, s))</code>
Hasilnya ialah:
'somestring. with funny characters'
Kaedah ini secara berkesan mengalih keluar aksara bukan ASCII sambil mengekalkan ruang dan titik, memberikan rentetan yang bersih untuk pemprosesan selanjutnya.
Atas ialah kandungan terperinci Bagaimana untuk Mengalih Keluar Aksara Bukan ASCII Secara Selektif Memelihara Ruang dan Tempoh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!