Maison  >  Article  >  développement back-end  >  Comment remplacer les caractères non-ASCII par des espaces en Python ?

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

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 16:34:02468parcourir

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 efficacement.

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() :

<code class="python">def remove_non_ascii_1(text):
    return ''.join([i if ord(i) < 128 else ' ' for i in text])</code>

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 :

<code class="python">re.sub(r'[^\x00-\x7F]+', ' ', text)</code>

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').

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn