Skip to main content
 首页 » 编程设计

python之如何从python中的字符串中删除特殊字符

2025年05月04日56shangdawei

我从网上抓取了数百万个字符串,例如:

s = 'WHAT\xe2\x80\x99S UP DOC?' 
type(s) == str # returns True 

从网络上抓取时,像上面字符串中的特殊字符是不可避免的。应该如何删除所有这些特殊字符以保留干净的文本?基于我对 unicode 字符的非常有限的经验,我正在考虑这样的正则表达式:

\\x.*[0-9] 

请您参考如下方法:

特殊字符实际上不是多个字符长,这就是它们的表示方式,因此您的正则表达式将不起作用。如果您print,您将看到实际的 unicode (utf-8) 字符

>>> s = 'WHAT\xe2\x80\x99S UP DOC?' 
>>> print(s) 
WHATâS UP DOC? 
>>> repr(s) 
"'WHATâ\\x80\\x99S UP DOC?'" 

如果你只想打印 ascii 字符,你可以检查字符是否在 string.printable

>>> import string 
>>> ''.join(i for i in s if i in string.printable) 
'WHATS UP DOC?'