gpt4 book ai didi

python特殊字符解码/编码

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:59 30 4
gpt4 key购买 nike

如何翻译下面的字符串

H.P. Dembinski, B. K\'{e}gl, I.C. Mari\c{s}, M. Roth, D. Veberi\v{c}

进入

H. P. Dembinski, B. K\xe9gl, I. C. Mari\u015f, M. Roth, D. Veberi\u010d

?

最佳答案

此代码应处理示例中的模式。现在可以添加 rest of those codes 了。 .只需将它们放入表格即可。

#!/usr/bin/python3
import re, unicodedata, sys

table = {
'v': '\u030C',
'c': '\u0327',
"'": '\u0301'
# etc...
}

def despecial(s):
return re.sub(r"\\(" + '|'.join(map(re.escape, table)) + r")\{(\w+)}",
lambda m: m.group(2) + table[m.group(1)],
s)

if __name__ == '__main__':
print(unicodedata.normalize('NFC', despecial(' '.join(sys.argv[1:]))))

例子:

>>> despecial(r"H.P. Dembinski, B. K\'{e}gl, I.C. Mari\c{s}, M. Roth, D. Veberi\v{c}")
'H.P. Dembinski, B. Kégl, I.C. Mariş, M. Roth, D. Veberič'

示例(命令行):

$ ./path/to/script.py "Hello W\v{o}rld"
Hello Wǒrld

它在给定的参数之后放置适当的 Unicode 组合字符。具体来说:U+0301 组合 ACUTE ACCENT、U+0327 组合 CEDILLA 和 U+030C 组合 CARON。如果你想要组成的字符串,你可以用 unicodedata.normalize 规范化它。什么的。

>>> import unicodedata
>>> unicodedata.normalize('NFC', despecial(r"H.P. Dembinski, B. K\'{e}gl, I.C. Mari\c{s}, M. Roth, D. Veberi\v{c}"))
'H.P. Dembinski, B. Kégl, I.C. Mariş, M. Roth, D. Veberič'

也就是说,我确信有更好的方法来处理这个问题。看起来您拥有的是 LaTeX 代码。

关于python特殊字符解码/编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598997/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com