"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo eliminar selectivamente caracteres que no sean ASCII conservando espacios y puntos?

¿Cómo eliminar selectivamente caracteres que no sean ASCII conservando espacios y puntos?

Publicado el 2024-11-01
Navegar:821

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

Eliminación selectiva de caracteres que no son ASCII

Trabajar con datos textuales a menudo implica la necesidad de eliminar caracteres que no son ASCII, preservando al mismo tiempo ciertos símbolos como espacios y períodos. Si bien los métodos de filtrado básicos pueden eliminar todos los caracteres que no sean ASCII, esto puede no ser deseable en algunos casos.

Consideremos el siguiente código:

def onlyascii(char):
    if ord(char)  127: return ''
    else: return char

Este código elimina todos los caracteres con valores ASCII inferiores a 48 o superiores a 127, eliminando eficazmente del texto los caracteres que no sean ASCII. Sin embargo, también elimina espacios (ASCII 32) y puntos (ASCII 46).

Para eliminar selectivamente caracteres que no son ASCII y al mismo tiempo conservar espacios y puntos, podemos aprovechar el módulo string.printable de Python:

import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)

El conjunto string.printable contiene todos los caracteres imprimibles del sistema, incluidos dígitos, letras, símbolos, espacios y puntos. Usando este conjunto como filtro, podemos eliminar todos los caracteres no imprimibles de la cadena.

Por ejemplo, si tenemos la cadena "some\x00string. with\x15 caracteres divertidos":

s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))

El resultado será:

'somestring. with funny characters'

Este método elimina eficazmente los caracteres que no son ASCII y al mismo tiempo conserva espacios y puntos, lo que proporciona una cadena limpia para su posterior procesamiento.

Declaración de liberación Este artículo se reimprime en: 1729341017 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3