Maison >développement back-end >Tutoriel Python >Comment supprimer les caractères non imprimables des chaînes Python ?
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>
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>
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 :
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!