Toute personne intéressée par une classe de caractères regex qui correspond à n'importe quel caractère de contrôle Unicode peut utiliser [\x00-\x1f\x7f-\x9f]
.
Vous pouvez le tester comme ceci :
>>> import unicodedata, re, sys
>>> all_chars = [chr(i) for i in range(sys.maxunicode)]
>>> control_chars = ''.join(c for c in all_chars if unicodedata.category(c) == 'Cc')
>>> expanded_class = ''.join(c for c in all_chars if re.match(r'[\x00-\x1f\x7f-\x9f]', c))
>>> control_chars == expanded_class
True
Donc, pour supprimer les caractères de contrôle à l'aide de re
utilisez simplement ce qui suit :
>>> re.sub(r'[\x00-\x1f\x7f-\x9f]', '', 'abc\02de')
'abcde'