Maison > développement back-end > Tutoriel Python > Comment supprimer sélectivement les caractères non-ASCII en préservant les espaces et les points ?

Comment supprimer sélectivement les caractères non-ASCII en préservant les espaces et les points ?

Linda Hamilton
Libérer: 2024-10-19 20:32:02
original
978 Les gens l'ont consulté

How to Selectively Remove Non-ASCII Characters Preserving Spaces and Periods?

Suppression sélective des caractères non-ASCII

Travailler avec des données textuelles implique souvent la nécessité de supprimer les caractères non-ASCII, tout en préservant certains symboles comme les espaces et les périodes. Bien que les méthodes de filtrage de base puissent supprimer tous les caractères non-ASCII, cela peut ne pas être souhaitable dans certains cas.

Considérons le code suivant :

<code class="python">def onlyascii(char):
    if ord(char) < 48 or ord(char) > 127: return ''
    else: return char</code>
Copier après la connexion

Ce code supprime tous les caractères avec des valeurs ASCII. inférieur à 48 ou supérieur à 127, supprimant ainsi le texte des caractères non-ASCII. Cependant, il supprime également les espaces (ASCII 32) et les points (ASCII 46).

Pour supprimer sélectivement les caractères non-ASCII tout en préservant les espaces et les points, nous pouvons exploiter le module string.printable de Python :

<code class="python">import string
printable = set(string.printable)
filtered_data = filter(lambda x: x in printable, data)</code>
Copier après la connexion

L'ensemble string.printable contient tous les caractères imprimables sur le système, y compris les chiffres, les lettres, les symboles, les espaces et les points. En utilisant cet ensemble comme filtre, nous pouvons supprimer tous les caractères non imprimables de la chaîne.

Par exemple, si nous avons la chaîne "somex00string. withx15 funny caractères":

<code class="python">s = "some\x00string. with\x15 funny characters"
''.join(filter(lambda x: x in printable, s))</code>
Copier après la connexion

Le résultat sera :

'somestring. with funny characters'
Copier après la connexion

Cette méthode supprime efficacement les caractères non-ASCII tout en préservant les espaces et les points, fournissant ainsi une chaîne propre pour un traitement ultérieur.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal