Удаление иностранных букв при сохранении английских букв с акцентами на питоне - PullRequest
0 голосов
/ 06 декабря 2018

Есть ли способ удалить иностранные буквы, но сохранить английские буквы с акцентами в python?

например, я хотел бы, чтобы Pic d'Ós был преобразован в Pic d'Os, но не был бы 马萨纳 преобразован в Ma Sa Na - в идеале я хотел бы, чтобы он был преобразован в пустую строку.

Я использовал unidecode, но unidecode также конвертирует иностранные буквы в ascii.

Спасибо за внимание.

1 Ответ

0 голосов
/ 06 декабря 2018

Современные механизмы регулярных выражений поддерживают класс символов Latin или isLatin, который будет соответствовать латинским буквам с ударением или без акцента.

Регулярное выражение, совпадающее только с тем, что вы хотите, будет немного сложнее.Вы не хотите просто совпадать с Letter или Number, так как они будут совпадать с буквами и цифрами из других скриптов.Также вы не хотите включать или исключать все сочетания акцентов: вы хотите, чтобы маленькая латинская буква +, сочетающая острый акцент, отображалась как á, а акцентированная греческая буква - нет.Итак, вы хотели бы соответствовать что-то вроде (\p{Latin}\p{Mark}*)|\p{Punctuation}|\p{Separator}.

...