python - 将 unicode 表示与符号进行比较

标签 python regex unicode

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

“Gib mir bitte Erk\u00e4ltung”

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

“认知”

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

如何将\u00e4 转换为 ä 而无需执行以下操作:

String.replace('\u00e4', 'ä')

更确切地说,我想让它在 Python 2.6 中返回一个匹配项:

(#编码:utf-8)

sentence = "Gib mir bitte Erk\u00e4ltung"

keyword = "Erkältung"

re.search(keyword, line)

有什么提示吗?

最佳答案

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'

关于python - 将 unicode 表示与符号进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13594946/

相关文章:

python - 在 Jupyter Notebook 中使用 Ctypes

python - 当我尝试从 Python Crash Course 运行代码时,pygame 出现此错误(发生异常 : AttributeError )

javascript - 正则表达式替换 & 但不替换 < 和 >

python - 何时在 PySide 中设置父级

Python:如果Python列表的当前索引发生异常,如何检查列表中的下一个索引

python - (.*js$) 和 .*(js)$ 有什么区别

java - 如何更改 java 中的正则表达式搜索以忽略大小写

c++ - 如何将 UTF8 字符数组转换为 Windows 1252 字符数组

asp.net-mvc-3 - MVC3 Razor 循环中奇怪的隐藏字符

python - 'Ascii' 编解码器无法在位置 186 : ordinal not in range(128) 对字符 u'\u201d' 进行编码