考虑以下列表:
a_list = [' me así, bla es se ds ']
如何从a_list
中提取所有表情符号并将其放入新列表中?
new_lis = [' ']
我尝试使用正则表达式,但是我没有所有可能的表情符号编码。
考虑以下列表:
a_list = [' me así, bla es se ds ']
如何从a_list
中提取所有表情符号并将其放入新列表中?
new_lis = [' ']
我尝试使用正则表达式,但是我没有所有可能的表情符号编码。
emoji.get_emoji_regexp()
和re
。import re
import emoji
# This works for `emoji` version <2.0
def extract_emojis(text):
return re.findall(emoji.get_emoji_regexp(), text)
test_str = ' some various emojis and flags '
emojis = extract_emojis(test_str)
['', '', '', '\u200d', '', '\u200d\u200d\u200d']
或者,查看字形簇:
print(' '.join(emoji for emoji in emojis))
产量
emoji
版本对于emoji>=2.0.0
的版本,无需使用re
:
def extract_emojis(text):
return [x.chars for x in emoji.analyze(test_str)]
from emoji import *
EMOJI_SET = set()
# populate EMOJI_DICT
def pop_emoji_dict():
for emoji in UNICODE_EMOJI:
EMOJI_SET.add(emoji)
# check if emoji
def is_emoji(s):
for letter in s:
if letter in EMOJI_SET:
return True
return False
当处理大型数据集时,这是一种更好的解决方案,因为您不必每次循环遍历所有表情符号。我发现这给了我更好的结果 :)
最初的回答
import emoji
command = "⌛45 6 52 ✖️2 1500 6 ↔️✋⛔"
emoji.emoji_list(command)
[{'match_start': 0, 'match_end': 1, 'emoji': '⌛'}, {'match_start': 4, 'match_end': 5, 'emoji': ''}, {'match_start': 7, 'match_end': 8, 'emoji': ''}, {'match_start': 11, 'match_end': 13, 'emoji': '✖️'}, {'match_start': 15, 'match_end': 16, 'emoji': ''}, {'match_start': 21, 'match_end': 22, 'emoji': ''}, {'match_start': 24, 'match_end': 25, 'emoji': ''}, {'match_start': 25, 'match_end': 27, 'emoji': '↔️'}, {'match_start': 27, 'match_end': 28, 'emoji': '✋'}, {'match_start': 28, 'match_end': 29, 'emoji': ''}, {'match_start': 29, 'match_end': 30, 'emoji': '⛔'}, {'match_start': 30, 'match_end': 33, 'emoji': '\u200d'}]
\u200d
。但是当这个值被打印到控制台时,它会变成
,所以我想这应该没问题。def extract_emojis(sentence):
return [sentence[i] for i in range(len(sentence)) if str(sentence[i].encode('unicode-escape'))[2] == '\\' ]
预期结果:
>>> a = ' me así, bla es se ds '
>>> b = extract_emojis(a)
>>> b
['', '', '', '', '', '']
# coding=utf8
import re
a_list = [' me así, bla es se ds ']
ret = re.findall(r'(?:❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|❤️|||||||||||❤️|❤️|❤️|||||||||||||️️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|⚕️|||||||||||||||||||||||||||||||⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️|⚖️||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|✈️|||||||||||||||||||||||||||||||♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|||||||||||||||||||||♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️||||||||||||||||||||||||||||||||||||||||||||||♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|♂️|♂️|♂️|♂️|♂️|♀️|♀️|♀️|♀️|♀️|️|️♂️|️♀️|️♂️|️♀️|️♂️|️♀️|️|️⚧️|⛹♂️|⛹♂️|⛹♂️|⛹♂️|⛹♂️|⛹♀️|⛹♀️|⛹♀️|⛹♀️|⛹♀️|||❤️|❤️|♂️|♀️|||||||||||||♀️|♂️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|⚕️|⚕️|⚕️|||||||⚖️|⚖️|⚖️||||||||||||||||||||||||||||✈️|✈️|✈️|||||||♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|||||♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️||||||||||♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|⛹️♂️|⛹️♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️|♂️|♀️||||||❄️|☠️|⬛|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||#️⃣|0️⃣|1️⃣|2️⃣|3️⃣|4️⃣|5️⃣|6️⃣|7️⃣|8️⃣|9️⃣|✋|✋|✋|✋|✋|✌|✌|✌|✌|✌|☝|☝|☝|☝|☝|✊|✊|✊|✊|✊|✍|✍|✍|✍|✍|⛹|⛹|⛹|⛹|⛹||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||☺|☹|☠|❣|❤|✋|✌|☝|✊|✍|⛷|⛹|☘|☕|⛰|⛪|⛩|⛲|⛺|♨|⛽|⚓|⛵|⛴|✈|⌛|⏳|⌚|⏰|⏱|⏲|☀|⭐|☁|⛅|⛈|☂|☔|⛱|⚡|❄|☃|⛄|☄|✨|⚽|⚾|⛳|⛸|♠|♥|♦|♣|♟|⛑|☎|⌨|✉|✏|✒|✂|⛏|⚒|⚔|⚙|⚖|⛓|⚗|⚰|⚱|♿|⚠|⛔|☢|☣|⬆|↗|➡|↘|⬇|↙|⬅|↖|↕|↔|↩|↪|⤴|⤵|⚛|✡|☸|☯|✝|☦|☪|☮|♈|♉|♊|♋|♌|♍|♎|♏|♐|♑|♒|♓|⛎|▶|⏩|⏭|⏯|◀|⏪|⏮|⏫|⏬|⏸|⏹|⏺|⏏|♀|♂|⚧|✖|➕|➖|➗|♾|‼|⁉|❓|❔|❕|❗|〰|⚕|♻|⚜|⭕|✅|☑|✔|❌|❎|➰|➿|〽|✳|✴|❇|©|®|™|ℹ|Ⓜ|㊗|㊙|⚫|⚪|⬛|⬜|◼|◻|◾|◽|▪|▫)', a_list[0])
print(ret)
#['', '', '', '', '', '']
这个函数期望一个字符串,因此将输入的列表转换为字符串
a_list = ' me así, bla es se ds '
# Import the necessary modules
from nltk.tokenize import regexp_tokenize
# Tokenize and print only emoji
emoji = "['\U0001F300-\U0001F5FF'|'\U0001F600-\U0001F64F'|'\U0001F680-
\U0001F6FF'|'\u2600-\u26FF\u2700-\u27BF']"
print(regexp_tokenize(a_list, emoji))
output :['', '', '', '', '']
所有Unicode表情符号及其对应的代码点可以在这里找到。它们的代码点范围是1F600至1F64F,因此您可以使用类似于范围的迭代器构建它们。