从字符串中删除表情符号在某些情况下无法正常工作。

3

我正在处理从Google大查询中接收到的数据,其中包含一些特殊的表情符号。我有一段代码可以删除表情符号,但是对于以下特定的表情符号无效。

下面是删除所有表情符号的示例代码,但不适用于以下情况。

使用版本 Python 3.9

from re import UNICODE, compile
emoji_pattern = compile("["
                        u"\U0001F600-\U0001F64F"  # emoticons
                        u"\U0001F300-\U0001F5FF"  # symbols & pictographs
                        u"\U0001F680-\U0001F6FF"  # transport & map symbols
                        u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                        u"\U0001F1F2-\U0001F1F4"  # Macau flag
                        u"\U0001F1E6-\U0001F1FF"  # flags
                        u"\U0001F600-\U0001F64F"
                        u"\U00002702-\U000027B0"
                        u"\U000024C2-\U0001F251"
                        u"\U0001f926-\U0001f937"
                        u"\U0001F1F2"
                        u"\U0001F1F4"
                        u"\U0001F620"
                        u"\u200d"
                        u"\u2640-\u2642"
                        "]+", flags=UNICODE)

# Works for this one 
data = 'support.google.co.uk/s/.'
result = emoji_pattern.subn(r'', data)
# result --> ('support.google.co.uk/s/.', 1)

# Doesn't work in this case
data = 'www.google.co.uk/?'
result = emoji_pattern.subn(r'', data)
# result --> ('www.google.co.uk/?', 0)

有人可以帮我解决这个问题吗?如果有人能帮忙教我如何在Python 3.9中检查特殊字符或表情符号的Unicode表示,那将非常有帮助,以便我可以在表情符号模式中更新这样的Unicode。


1
这个回答解决了你的问题吗?在Python中从字符串中删除表情符号 - wovano
部分是的。我也想将表情符号转换为Unicode。感谢您指引我解决方案。 - Binit Amin
2个回答

4

请查看这个答案emoji Python包似乎是解决这个问题的最佳方式。

将任何表情符号/字符转换为UTF-8,请执行以下操作:

import emoji
s = ''
print(s.encode('unicode-escape').decode('ASCII'))

它将打印\U0001f600


2

仅供参考的修改后的表情符号模式列表。

emoji_pattern = compile("["
                        u"\U0001F600-\U0001F64F"  # emoticons
                        u"\U0001F300-\U0001F5FF"  # symbols & pictographs
                        u"\U0001F680-\U0001F6FF"  # transport & map symbols
                        u"\U0001F1E0-\U0001F1FF"  # flags (iOS)
                        u"\U00002702-\U000027B0"
                        u"\U000024C2-\U0001F251"
                        u"\U0001f926-\U0001f937"
                        u"\U0001F1F2"
                        u"\U0001F1F4"
                        u"\U0001F620"
                        u"\u200d"
                        u"\u2640-\u2642"
                        u"\u2600-\u2B55"
                        u"\u23cf"
                        u"\u23e9"
                        u"\u231a"
                        u"\ufe0f"  # dingbats
                        u"\u3030"
                        u"\U00002500-\U00002BEF"  # Chinese char
                        u"\U00010000-\U0010ffff"
                        "]+", flags=UNICODE)

谢谢


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接