比较unicode表示与符号

2024-05-15 22:35:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大量句子的数据文件,编码如下:

“吉布米尔比特尔克\u00e4ltung”

我还有一个包含大量关键字的数据文件,编码如下:

“尔克图”

我想搜索句子中的关键字,然后将它们以“Erkältung”格式写入文件。在

如何在不必执行以下操作的情况下将\u00e4转换为ä

在字符串。替换('\u00e4','a')

更确切地说,我希望在Python2.6中返回一个匹配项:

(#编码:utf-8)

sentence = "Gib mir bitte Erk\u00e4ltung"

keyword = "Erkältung"

re.search(keyword, line)

有什么提示吗?在


Tags: 文件字符串编码数据文件格式情况关键字keyword
3条回答

Python内置了一些方便的字符编码转换。在本例中,unicode_escape就是您想要的。当你读你的句子时,在进行搜索之前,把它转换如下:

# Original sentence:

>>> s = "Gib mir bitte Erk\u00e4ltung"

>>> print s
Gib mir bitte Erk\u00e4ltung

>>> print repr(s)
'Gib mir bitte Erk\\u00e4ltung'


# Converted sentence:

>>> sc = s.decode('unicode_escape')

>>> print sc
Gib mir bitte Erkältung

>>> print repr(sc)
u'Gib mir bitte Erk\xe4ltung'

非正则表达式解决方案(首选):

s = s.decode('unicode_escape')

正则表达式解决方案:

^{pr2}$

要读取带有\u00e4编码字符的文件,请使用

fp = open('sentence.txt', 'r')
sentence = fp.read().decode('unicode-escape')
fp.close()
print repr(sentence) # -> u'Gib mir bitte Erk\xe4ltung'

然后不转义读取文件:

^{pr2}$

那么两种格式都是一样的

fp = codecs.open('result.txt', 'a', encoding='utf-8')
if re.search(keyword, sentence, re.UNICODE) :
    fp.write(sentence)
fp.close()

相关问题 更多 >