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

Comment remplacer les caractères non-ASCII par un seul espace en Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-01 14:11:02878parcourir

How to Replace Non-ASCII Characters with a Single Space in Python?

Remplacer les caractères non-ASCII par un seul espace

En Python, remplacer les caractères non-ASCII par un espace n'est pas une tâche triviale. De nombreuses solutions existent pour supprimer les caractères non-ASCII, mais leur remplacement reste une exigence rare.

La fonction fournie, remove_non_ascii_1, supprime efficacement tous les caractères non-ASCII. remove_non_ascii_2, quant à lui, remplace les caractères non-ASCII par des espaces, mais le nombre d'espaces correspond à la taille du point de code du caractère.

Abordons maintenant la question centrale :

Comment pouvons-nous remplacer tous les caractères non-ASCII par un seul espace ?

Solution 1 :

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

Cette approche utilise une expression conditionnelle dans le compréhension de la liste de ''.join(). Les caractères avec des valeurs ASCII inférieures à 128 restent inchangés, tandis que ceux non-ASCII sont remplacés par un espace.

Solution 2 :

<code class="python">import re

def replace_with_space(text):
    return re.sub(r'[^\x00-\x7F]+', ' ', text)</code>

Dans cette solution, le caractère dans l'expression régulière garantit que les caractères non-ASCII consécutifs sont remplacés par un seul espace. Cela élimine le problème dans remove_non_ascii_2 où plusieurs espaces ont été insérés.

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