如何删除文本中的表情符号,如下所示:
'ca va toi ;-) ?'
我使用了很多关于删除表情符号的解决方案,但没有任何效果。 我想要这样的输出:
ca va toi ?
我不想删除标点符号,只删除那些形成表情符号的标点符号。 感谢
答案 0 :(得分:2)
一种简单的方法是指定可能的表情符号列表。
emoji_list = [";-)", ":)"]
然后删除字符串中出现的那些字符串。
# A dictionary with your emojis or any combination of characters you want to get rid of.
emoji_list = [";-)", ":)"]
# Your input string
string = 'ca va :) toi ;-) ?'
# Split the string into a list of substrings.
string_list = string.split()
# Using list comprehension, create a new list that excludes the emoji_list items.
clear_string = [string for string in string_list if string not in emoji_list]
# ALTERNATIVE a cleaner way is to use higher-order function filter to filter out the emojis.
clear_string = filter(lambda x: x not in emoji_list, string_list)
# Join the list into a string again.
output = " ".join(clear_string)
print(output)
您可以使用python中的列表推导来创建一个排除emoji_list
中定义的子串的列表。另一种方法是使用高阶函数filter
来过滤掉那些表情符号。
然后,您将获得一个新列表,该列表排除了您在emoji_list
中定义的子字符串,然后您只需将列表加入字符串即可获得所需的结果。
注意:这是一种非常简单的方法,可以很容易地返回误报(即被视为表情符号的子字符串,实际上并非如此)。这个解决方案不包括这些假设或案例。
答案 1 :(得分:1)
以下内容适合您。您可以添加其他规则以使其更好地概括。
x = 'ca va toi ;-) ?'
x = x.replace(';-)', '')
x = x.replace(';-(', '')
x = x.replace(';-|', '')
x = x.replace(';-D', '')
' ca va toi?'
如果您想清除所有标点符号,也可以执行以下操作
x = 'ca va toi ;-) ?'
''.join([i for i in x if (i >= 'a' and i<='z') or (i >= 'A' and i<='Z') or i == ' ')
&#39; ca va toi&#39;