从字符串中删除表情符号在某些情况下不起作用
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)
谢谢
我正在处理从 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)
谢谢