2

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

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

4

1 回答 1

1

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

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

text_to_analyze = re.sub(modifiers,"",my_text)
print unicode(text_to_analyze,"utf8").isalpha()
于 2014-02-20T22:49:43.987 回答