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 :
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!