Python:使所有非组合unicode字符组合

2024-05-23 12:10:06 发布

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

我用非组合字符表示带有重音和变音符号的字符串:

vyˇcíslitelnost (nerozhodnutelnost, v ˇety o neúplnosti),um ˇelá inteligence (automatické odvozování, rezoluce), univerzální nástroje: SAT a SMT ˇrešiˇce

我想把它们变成组合角色。例如,上面的字符串如下所示:

vyčíslitelnost (nerozhodnutelnost, věty o neúplnosti),umělá inteligence (automatické odvozování, rezoluce), univerzální nástroje: SAT a SMT řešiče

我怎样才能做到这一点?我已经试过了unicodedata.normalize,但它对非组合字符没有效果

谢谢你的帮助


Tags: 字符串字符umnelnvynerozhodnutelnostslitelnost
1条回答
网友
1楼 · 发布于 2024-05-23 12:10:06

以下是我的老派(反pythonic)方法:

import unicodedata

lettersWithCaron = 'ČčĎďĚ켾ŇňŘřŠšŤťŽžDžǍǎǏǐǑǒǓǔǦǧǨǩǰȞȟ' # from Unicode database
caron            = '\u02C7'

astring = 'vyˇcíslitelnost (nerozhodnutelnost, v ˇety o neúplnosti),um ˇelá inteligence (automatické odvozování, rezoluce), univerzální nástroje: SAT a SMT ˇrešiˇce'
for lett in lettersWithCaron:
    astring = astring.replace(
        (caron + unicodedata.normalize( 'NFD',lett)).replace('\u030C',''), lett)
    
print( astring)

输出显示在字符串中的某些caron(v ˇetyum ˇelá)之前有一个额外的空格(不同于ˇrešiˇce

.\SO\69647976.py

vyčíslitelnost (nerozhodnutelnost, v ěty o neúplnosti),um ělá inteligence (automatické odvozování, rezoluce), univerzální nástroje: SAT a SMT řešiče

相关问题 更多 >

    热门问题