2016-11-16 70 views
1

似乎有很多关于在其他语言中这样做的帖子,但我似乎无法弄清楚如何在Python中(我使用2.7)。替换或删除python中的特定unicode字符

为了清楚起见,我希望将字符串保存为unicode,只需要替换某些特定的字符即可。

例如:

thisToken = u'tandh\u2013bm' 
print(thisToken) 

打印在中间的m破折号字。我只想删除m-dash。 (但使用索引,因为我希望能够做到这一点的任何地方我发现这些特定的字符。)

我尝试使用replace就像你使用任何其他字符:

newToke = thisToken.replace('\u2013','') 
print(newToke) 

但只是不起作用。任何帮助深表感谢。 Seth

+0

,如果你在你的文件的顶部使用'从__future__进口unicode_literals',所有的字符串文字自动unicode的,这将在这里帮助(但要注意的惊喜,当一些字符串必须是字节,可以使用的'b'前缀)。 – RemcoGerlich

回答

5

您正在搜索要替换的字符串也必须是Unicode字符串。尝试:

newToke = thisToken.replace(u'\u2013','') 
+1

事实上,如果第二个参数是'u''',那么它可能是最好的:-) – RemcoGerlich

0

你可以看到答案在这个岗位:How to replace unicode characters in string with something else python?

解码字符串为Unicode。假设这是UTF-8编码:

str.decode("utf-8") 

调用替换方法,并确保它传递一个Unicode字符串作为其第一个参数:

str.decode("utf-8").replace(u"\u2022", "") 

编码回UTF-8,如果需要的话:

str.decode("utf-8").replace(u"\u2022", "").encode("utf-8")