Python:使所有非组合的unicode字符组合
Python: make all non-combining unicode characters combining
我有带重音符号和变音符号的字符串,由非组合字符表示:
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
但它对非组合字符没有影响。
感谢您的帮助
这是我的老派(反 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)
Output 表明在你的字符串中的一些卡龙 (v ˇety
, um ˇelá
) 之前有一个额外的 space (不像 ˇrešiˇce
)…
.\SO647976.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
我有带重音符号和变音符号的字符串,由非组合字符表示:
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
但它对非组合字符没有影响。
感谢您的帮助
这是我的老派(反 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)
Output 表明在你的字符串中的一些卡龙 (v ˇety
, um ˇelá
) 之前有一个额外的 space (不像 ˇrešiˇce
)…
.\SO647976.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