我在列表中有几个'\uword'
类型的单词。我想用空字符串替换'\u'
。我环顾四周,但迄今为止没有任何对我有用。我尝试使用"%r"%word
转换为原始字符串,但这不起作用。我也试过使用word.encode('unicode-escape')
,但没有获得任何好处。有什么想法吗?
修改
添加代码
word = '\u2019'
word.encode('unicode-escape')
print(word) # error
word = '\u2019'
word = "%r"%word
print(word) # error
答案 0 :(得分:3)
我假设.encode
字符串方法修改了类似于列表的.sort()
方法的字符串,我犯了一个错误。但根据文件
bytes.decode()的另一种方法是str.encode(),它返回Unicode字符串的字节表示,以请求的编码进行编码。
def remove_u(word):
word_u = (word.encode('unicode-escape')).decode("utf-8", "strict")
if r'\u' in word_u:
# print(True)
return word_u.split('\\u')[1]
return word
vocabulary_ = [remove_u(each_word) for each_word in vocabulary_]
答案 1 :(得分:2)
鉴于您只处理字符串。 我们可以使用字符串函数将其简单地转换为字符串。
>>> string = u"your string"
>>> string
u'your string'
>>> str(string)
'your string'
猜猜会这样做!
答案 2 :(得分:1)
如果我已正确理解,您不必使用正则表达式。试试吧:
>>> # string = '\u2019'
>>> char = string.decode('unicode-escape')
>>> print format(ord(char), 'x')
2019
答案 3 :(得分:-1)
因为您遇到编码和unicode问题,所以了解您正在使用的python版本会很有帮助。 我不知道我是否能帮到你,但这应该可以解决问题:
string = r'\uword'
string.replace(r'\u','')