我试图从文本字符串中删除一些十六进制(例如\xc3
)。
我计划使用正则表达式来帮助摆脱这些。
这是我的代码:
import re
tweet = 'b"[/Very seldom~ will someone enter your life] to question\xc3\xa2\xe2\x82\xac\xc2\xa6"'
tweet1 = re.sub(r'\\x[a-f0-9]{2}', '', tweet)
print(tweet1)
但是,我没有删除输出,而是实际获得了hex的编码版本。这是我的输出:
b"[/Very seldom~ will someone enter your life] to questionââ¬Â¦ "
有人知道如何摆脱那些十六进制字符串吗?...提前谢谢。
答案 0 :(得分:0)
应用正则表达式后尝试tweet1.decode('ascii','ignore')
。
答案 1 :(得分:0)
你可以简单地做
import re
tweet = 'b"[/Very seldom~ will someone enter your life] to question\xc3\xa2\xe2\x82\xac\xc2\xa6"'
tweet1 = re.sub(b'[\xc3\xa2\xe2\x82\xac\xc2\xa6]', '', tweet)
输出:
b"[/Very seldom~ will someone enter your life] to question"
答案 2 :(得分:0)
您可以尝试这样的事情:
b"[Very seldom~ will someone enter your life] to question"
输出:
[^\w\s{}]
正则表达式:
\w
- 匹配不是\s
,{
user these in your use list
System.Ioutils
}
或标点字符的所有内容。
答案 3 :(得分:0)
实际上,问题是我如何模拟问题。 tweet
不包含文字字符\xc3\xa2...
,它在声明字符串时实际编码它们。所以正则表达式正在寻找字符串\xc3
,但tweet
在该位置包含的内容实际上是Ã
解决方案是在utf8中编码然后转换为字符串,最后使用正则表达式来摆脱十六进制。我在这篇文章中取得了领先(看看Martijn Pieters的第一个答案):python regex: how to remove hex dec characters from string