Python 3中不会删除特殊的Unicode字符
我有一个包含单词的Python 3中不会删除特殊的Unicode字符,python,regex,string,unicode,Python,Regex,String,Unicode,我有一个包含单词的键列表。当我发出此命令时: for key in keys: print(key) 我在终端得到正常输出 但是,当我使用print(keys)打印整个列表时,我得到以下输出: 我尝试过使用key.replace(“\u202c”,”),key.replace(\\u202c“,”),re.sub(u'\u202c',“”,key),但都没有解决问题。 我也在这里尝试了这些解决方案,但它们都不起作用: 我使用Beautiful Soup从Google Trend
键
列表。当我发出此命令时:
for key in keys:
print(key)
我在终端得到正常输出
但是,当我使用print(keys)
打印整个列表时,我得到以下输出:
我尝试过使用key.replace(“\u202c”,”)
,key.replace(\\u202c“,”)
,re.sub(u'\u202c',“”,key)
,但都没有解决问题。
我也在这里尝试了这些解决方案,但它们都不起作用:
我使用Beautiful Soup从Google Trends中抓取了这篇文章,并从get\u text()
此外,在谷歌趋势页面的页面来源中,单词如下所示:
当我直接从页面源粘贴文本时,粘贴的文本没有这些不寻常的符号。 您只需使用
strip
去除字符即可
>>> keys=['\u202cABCD', '\u202cXYZ\u202c']
>>> for key in keys:
... print(key)
...
ABCD
XYZ
>>> newkeys=[key.strip('\u202c') for key in keys]
>>> print(keys)
['\u202cABCD', '\u202cXYZ\u202c']
>>> print(newkeys)
['ABCD', 'XYZ']
>>>
尝试了你的一种方法,对我来说确实有效:
>>> keys
['\u202cABCD', '\u202cXYZ\u202c']
>>> newkeys=[]
>>> for key in keys:
... newkeys += [key.replace('\u202c', '')]
...
>>> newkeys
['ABCD', 'XYZ']
>>>
@OferSadan我刚刚尝试了这个,得到了与问题中相同的输出。在列表中的每个项目生成后,对其执行
sub(r'\p{Block=General\u标点符号}+,'')
。或者,您可以使用块的范围[\u2000-\u206F]+
。你看,这对我也有好处!关于为什么我之前尝试的方法不起作用有什么见解吗?@HimanshuAhuja我尝试了你的一种方法,它在python3中确实对我有效