"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment remplacer les caractères non-ASCII par des espaces en Python ?

Comment remplacer les caractères non-ASCII par des espaces en Python ?

Publié le 2024-11-14
Parcourir:506

How to Replace Non-ASCII Characters with Spaces in Python?

Remplacement des caractères non-ASCII par des espaces en Python

La tâche consistant à remplacer les caractères non-ASCII par des espaces en Python peut sembler simple, mais les fonctions intégrées souvent utilisées pour la manipulation de caractères peuvent ne pas fournir immédiatement une solution simple. Explorons les défis et les approches alternatives pour atteindre cet objectif de manière efficace.

Solutions actuelles

Deux approches existantes sont présentées dans la question :

  • remove_non_ascii_1() supprime tous les caractères non-ASCII.
  • remove_non_ascii_2() remplace les caractères non-ASCII par des espaces, en utilisant plusieurs espaces pour les caractères avec des points de code plus grands.

Remplacement d'un seul espace

La question demande spécifiquement de remplacer tous les caractères non-ASCII par un seul espace. Pour y parvenir, nous devons modifier la fonction remove_non_ascii_1() :

def remove_non_ascii_1(text):
    return ''.join([i if ord(i) 

Dans cette fonction mise à jour, nous utilisons une expression conditionnelle pour remplacer les caractères non-ASCII par un seul espace . L'expression ''.join() concatène ensuite les caractères modifiés en une seule chaîne.

Approche de l'expression régulière

L'expression régulière dans remove_non_ascii_2() peut également être ajusté pour le remplacement par un seul espace :

re.sub(r'[^\x00-\x7F] ', ' ', text)

Ici, le modificateur ' ' est ajouté entre crochets pour garantir que les caractères non-ASCII consécutifs sont remplacés par un seul espace.

Remarque : Ces fonctions fonctionnent sur les chaînes Unicode. Si vous travaillez avec des chaînes d'octets, les caractères Unicode doivent d'abord être décodés (par exemple, en unicode(text, 'utf-8').

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3