从字符串中删除表情符号在某些情况下不起作用

Remove emoji from string doesn't works for some cases

我正在处理从 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,那也会很有帮助。

查看 emoji python 软件包似乎是解决此问题的最佳方法。

要将任何 emoji/character 转换为 UTF-8,请执行以下操作:

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

它会打印 \U0001f600

修改表情符号样式列表,仅供参考。

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)

谢谢