假设我们有以下包含表情符号的字符串:
Original Answer翻译成"最初的回答"
sent1 = ' right'
sent2 = 'Some text?! '
sent3 = ''
任务是去除文本并获得以下输出:
sent1_emojis = ' '
sent2_emojis = ' '
sent3_emojis = ''
根据之前的问题(正则表达式匹配Emoji Unicode),我使用以下正则表达式来识别包含至少一个Emoji的字符串:
/[\u{1F600}-\u{1F64F}]/u
最初的回答
emoji_pattern = re.compile(u".*(["
u"\U0001F600-\U0001F64F" # emoticons
u"\U0001F300-\U0001F5FF" # symbols & pictographs
u"\U0001F680-\U0001F6FF" # transport & map symbols
u"\U0001F1E0-\U0001F1FF" # flags (iOS)
"])+", flags= re.UNICODE)
为了获得输出字符串,我使用以下方法:
原始答案翻译成“最初的回答”。
re.match(emoji_pattern, sent1).group(0)
有一个问题是关于 `sent2` 字符串的。`re.match(emoji_pattern, sent1).group(0)` 返回的是整个 `sent2` 而不是仅有表情符号。最初的回答是这样的,等等。