Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengalih Keluar Aksara Bukan ASCII Secara Selektif Memelihara Ruang dan Tempoh?

Bagaimana untuk Mengalih Keluar Aksara Bukan ASCII Secara Selektif Memelihara Ruang dan Tempoh?

Linda Hamilton
Linda Hamiltonasal
2024-10-19 20:32:02864semak imbas

How to Selectively Remove Non-ASCII Characters Preserving Spaces and Periods?

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!

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