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

Linda Hamilton
Lepaskan: 2024-10-19 20:32:02
asal
863 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Hasilnya ialah:

'somestring. with funny characters'
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
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!