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!