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

Susan Sarandon
Libérer: 2024-10-22 06:58:30
original
309 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!

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!