在Python中替换或删除特定的Unicode字符

4

似乎有很多关于如何在其他语言中实现这一点的帖子,但我无法弄清楚如何在Python(我正在使用2.7版本)中实现。

明确一点,我希望保留字符串的unicode格式,只是能够替换某些特定字符。

例如:

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

打印中间带有m-dash的单词。我只想删除m-dash。(但是不使用索引,因为我想在任何找到这些特定字符的地方都能做到这一点。)

我尝试使用replace,就像你处理其他字符一样:

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

但是它就是不起作用。非常感谢任何帮助。 Seth


如果在文件顶部使用from __future__ import unicode_literals,所有字符串文字都将自动转换为Unicode,并且这会对此有所帮助(但是当某些字符串需要字节时要小心,可以为它们使用b前缀)。 - RemcoGerlich
2个回答

9

你要替换的字符串也必须是Unicode字符串。请尝试:

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

1
实际上,如果第二个参数也是 u'' 的话,可能会更好 :-) - RemcoGerlich

0

你可以在这篇文章中看到答案:如何用 Python 替换字符串中的 Unicode 字符?

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

str.decode("utf-8")

调用replace方法,确保将Unicode字符串作为其第一个参数传递:

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

如有需要,编码回 UTF-8:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接