|
Python - Remover caracteres ocultos de uma string | |
| @CanalQb | ||
Introdução
Em programação Python, é comum lidar com strings que contêm caracteres invisíveis ou ocultos, como caracteres de controle ASCII que podem causar problemas na manipulação de texto, visualização ou processamento de dados. Remover esses caracteres é essencial para garantir a integridade e a limpeza dos dados.
Por que remover caracteres ocultos?
Caracteres invisíveis podem ser inseridos em strings por diversas fontes, como arquivos de texto gerados por sistemas externos, entradas de usuários, ou dados extraídos da web. Eles podem provocar falhas, resultados inesperados em buscas, comparações ou até erros em funções que manipulam strings.
Módulo re e limitações
Embora o módulo re do Python ofereça suporte a expressões regulares poderosas, ele não suporta escapes Unicode do tipo \p{...}. Portanto, para remover caracteres invisíveis, é preciso usar faixas específicas de caracteres ASCII correspondentes a esses códigos de controle.
Como remover caracteres ocultos em Python
Você pode utilizar a seguinte expressão regular para remover os caracteres de controle ASCII, que abrangem os intervalos \x00-\x1f e \x7f-\x9f:
import re frase = "Texto com caracteres ocultos\u0007\u000b aqui." frase_sem_invisiveis = re.sub(r'[\x00-\x1f\x7f-\x9f]', '', frase) print(frase_sem_invisiveis)
Esse código remove todos os caracteres que podem ser invisíveis ou causar problemas, incluindo caracteres de controle padrão (0x00 a 0x1F), o caractere DEL (0x7F), e os caracteres de controle do bloco C1 (0x80 a 0x9F).
Explicação detalhada do padrão
[\x00-\x1f]: faixa que engloba caracteres de controle ASCII de 0 a 31, incluindo tab, newline, carriage return, etc.\x7f: caractere DEL, usado para apagar.[\x80-\x9f]: caracteres de controle adicionais da tabela ASCII estendida (C1).
Considerações finais
Este método é eficiente para limpar strings em Python e evitar erros relacionados a caracteres invisíveis. É uma prática recomendada para quem trabalha com dados provenientes de múltiplas fontes ou que precisam garantir a qualidade do conteúdo textual.

Comentários
Comente só assim vamos crescer juntos!