Вырезать все смайлики из строки

Допустим у нас есть строка:

"???????????????????????????‍??‍??‍❤‍?‍?????✋??? Какой прекрасный день!"

Как из этой строки убрать все смайлики и на выходе получить лишь чистый текст:

"Какой прекрасный день!"

При этом смайлики могут быть совершенно разные не обязательно те что в строке.


Ответы (3 шт):

Автор решения: Victor VosMottor
import re

text = u'This is a smiley face \U0001f602'
print(text) # with emoji

def deEmojify(text):
    regrex_pattern = re.compile(pattern = "["
        u"\U0001F600-\U0001F64F"  # emoticons
        u"\U0001F300-\U0001F5FF"  # symbols & pictographs
        u"\U0001F680-\U0001F6FF"  # transport & map symbols
        u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                           "]+", flags = re.UNICODE)
    return regrex_pattern.sub(r'',text)

print(deEmojify(text))

source

А можно пожеще:

import re
re.sub('[^\x00-\x7Fа-яА-Я]', '', string)
→ Ссылка
Автор решения: gil9red

Попробуйте так:

# pip install emoji
import emoji

text = "???????????????????????????‍??‍??‍❤‍?‍?????✋???Какой прекрасный день!"
new_text = ''.join(char for char in text if char not in emoji.UNICODE_EMOJI)

print(new_text)
# ‍‍‍‍‍Какой прекрасный день!
→ Ссылка
Автор решения: avk
text = "???????????????????????????‍??‍??‍❤‍?‍?????✋??? Какой прекрасный день!"  
a = text.find('К')  # определяем начало новой строки (без смайликов)  
text_new = text[a:]  # и берем срез до конца  

print(text_new)  # Какой прекрасный день!  
→ Ссылка