python isalpha不能正确处理unicode梳理标记?

时间:2014-02-20 22:15:44

标签: python unicode combining-marks

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

  
    
      

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

    
  

1 个答案:

答案 0 :(得分:1)

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

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

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