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中确实对我有效