繁体   English   中英

python isalpha无法正确处理Unicode组合标记吗?

[英]python isalpha doesn't handle unicode combing marks properly?

我遇到了奇怪的乌克兰字Кири́лл 我将其转换为unicode并使用isalpha进行了测试,该函数返回False。 我环顾四周,发现这个词包含名为“结合急性口音”的字符。 因此,信и实际上是两个字符的组合:и 如果我理解正确,则组合标记(例如这种重音符号)仅用于修改其他字符。 因此,isalpha应该将此字符串识别为单词。 我错了吗? 有什么办法可以得到正确的结果? utf8中有问题的单词:

字='\\ xd0 \\ x9a \\ xd0 \\ xb8 \\ xd1 \\ x80 \\ xd0 \\ xb8 \\ xcc \\ x81 \\ xd0 \\ xbb \\ xd0 \\ xbb'

我认为您将需要替换任何修饰符字符的字符串,因为修饰符不被视为字母

modifiers = "\xcc\x81|<OTHER>|<MODIFIERS>"

text_to_analyze = re.sub(modifiers,"",my_text)
print unicode(text_to_analyze,"utf8").isalpha()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM