Maison > développement back-end > Tutoriel Python > Comment supprimer les caractères non imprimables des chaînes Python ?

Comment supprimer les caractères non imprimables des chaînes Python ?

Susan Sarandon
Libérer: 2024-10-22 06:58:30
original
490 Les gens l'ont consulté

How to Remove Non-Printable Characters from Python Strings?

Suppression des caractères non imprimables des chaînes en Python

Question :

En Perl, les caractères non imprimables peuvent être supprimés à l'aide de l'expression regex s/[^[:print:]]//g. Cependant, en Python, la classe [:print:] n'est pas prise en charge. Comment pouvons-nous obtenir une fonctionnalité similaire en Python qui gère à la fois les caractères ASCII et Unicode ?

Réponse :

En raison des limites de Python dans la détection de l'imprimabilité, nous pouvons construire notre propre caractère classe à l'aide du module unicodedata.

<code class="python">import unicodedata, re, itertools, sys

# Generate a list of all characters
all_chars = (chr(i) for i in range(sys.maxunicode))

# Category of control characters
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)

# Escape the control characters for regular expression matching
control_char_re = re.compile('[%s]' % re.escape(control_chars))

# Function to remove control characters from a string
def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
Copier après la connexion

Pour Python 2 :

<code class="python">import unicodedata, re, sys

# Generate a list of all characters
all_chars = (unichr(i) for i in xrange(sys.maxunicode))

# Category of control characters
categories = {'Cc'}
control_chars = ''.join(c for c in all_chars if unicodedata.category(c) in categories)

# Escape the control characters for regular expression matching
control_char_re = re.compile('[%s]' % re.escape(control_chars))

# Function to remove control characters from a string
def remove_control_chars(s):
    return control_char_re.sub('', s)</code>
Copier après la connexion

Option étendue :

Pour suppression plus complète, des catégories supplémentaires peuvent être incluses, même si cela peut avoir un impact sur les performances.

Catégories et nombres de caractères :

  • Cc (contrôle) : 65
  • Cf (format) : 161
  • Cs (substitut) : 2048
  • Co (usage privé) : 137468
  • Cn (non attribué) : 836601

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