Python, как обнаружить «комбинированные символы»?

Я пытаюсь сделать некоторый код Python, чтобы определить, содержит ли строка «комбинированные символы», которые, как я считаю, являются частью Unicode. Теперь, не просто простой персонажей, но больше похожи на это: S̶̶̸̡̝̤͚͉͖͔̱̳̞̃̃̃ͦͮͨͫ́ͣ̽͋̉̐̔̉̄S̶̶̸̡̝̤͚͉͖͔̱̳̞̃̃̃ͦͮͨͫ́ͣ̽͋̉̐̔̉̄S̶̶̸̡̝̤͚͉͖͔̱̳̞̃̃̃ͦͮͨͫ́ͣ̽͋̉̐̔̉̄, где это действительно раздражает. В любом случае, любая помощь - это здорово, спасибо! О, и когда я говорю «обнаружить», код должен вернуть «истину», если он присутствует. Благодаря тонну! Я знаю, что много прошу


person jumbodrawn    schedule 01.08.2017    source источник
comment
Что вы уже сделали и с какой проблемой столкнулись?   -  person araknoid    schedule 02.08.2017
comment
Честно говоря, я действительно понятия не имею, с чего начать... Я просмотрел несколько сообщений здесь и сказал, что должен различать Unicode и обычные строки... не слишком уверен, что это поможет. @аракноид   -  person jumbodrawn    schedule 02.08.2017
comment
Этот вопрос немного широк.. сразу я бы предложил использовать регулярное выражение (например, \w для обнаружения символов слова..   -  person Bobby D    schedule 02.08.2017


Ответы (1)


Из Википедии эти символы находятся в кодовых точках Юникода от U+0300 (768) до U. +036F (879), поэтому символы можно получить в Python следующим образом:

combining_marks = set(map(unichr, range(768, 880)))

Чтобы узнать, какие такие символы есть в вашей строке:

combining_marks.intersection(my_string)
person Alex Hall    schedule 01.08.2017
comment
Есть и другие, такие как комбайнеры смайликов. - person Ṃųỻịgǻňạcểơửṩ; 23.07.2019