Python Isalpha не обрабатывает метки расчесывания Unicode должным образом?

Я встретил странное украинское слово Кири́лл. Я преобразовал его в Unicode и проверил с помощью isalpha, который вернул False. Я огляделся и обнаружил, что в этом слове есть символ под названием "сочетание острого акцента". Таким образом, буква и́ на самом деле является комбинацией двух символов: и и ́. Если я правильно понял, объединяющие знаки (как этот острый акцент) предназначены только для изменения других символов. Таким образом, isalpha должен распознавать эту строку как слово. Я ошибся? Есть ли способ получить правильные результаты? Слово, о котором идет речь, в utf8:

слово = '\xd0\x9a\xd0\xb8\xd1\x80\xd0\xb8\xcc\x81\xd0\xbb\xd0\xbb'

1 ответ

Решение

Я думаю, что вам нужно будет заменить строки любых символов-модификаторов, так как символ-модификатор не считается альфа

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

text_to_analyze = re.sub(modifiers,"",my_text)
print unicode(text_to_analyze,"utf8").isalpha()
Другие вопросы по тегам