"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como remover seletivamente caracteres não ASCII preservando espaços e pontos?

Como remover seletivamente caracteres não ASCII preservando espaços e pontos?

Publicado em 01/11/2024
Navegar:895

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

Remoção seletiva de caracteres não ASCII

Trabalhar com dados textuais geralmente envolve a necessidade de remover caracteres não ASCII, preservando certos símbolos como espaços e períodos. Embora os métodos básicos de filtragem possam remover todos os caracteres não-ASCII, isso pode não ser desejável em alguns casos.

Vamos considerar o seguinte código:

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

Este código remove todos os caracteres com valores ASCII menores que 48 ou maiores que 127, eliminando efetivamente o texto de caracteres não ASCII. No entanto, ele também remove espaços (ASCII 32) e pontos (ASCII 46).

Para remover seletivamente caracteres não-ASCII enquanto preserva espaços e pontos, podemos aproveitar o módulo string.printable do Python:

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

O conjunto string.printable contém todos os caracteres imprimíveis no sistema, incluindo dígitos, letras, símbolos, espaços e pontos. Usando este conjunto como filtro, podemos remover todos os caracteres não imprimíveis da string.

Por exemplo, se tivermos a string "some\x00string. with\x15 caracteres engraçados":

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

O resultado será:

'somestring. with funny characters'

Este método remove efetivamente caracteres não ASCII enquanto preserva espaços e pontos, fornecendo uma string limpa para processamento posterior.

Declaração de lançamento Este artigo foi reimpresso em: 1729341017 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3