在 python 中提取带有表情符号的主题标签

extract hashtag with emoji in python

我想从文本中提取所有主题标签,即使这些主题标签包含 unicode 或表情符号。如果主题标签有 space 和表情符号,我不会包含它,因为我们在主题标签和表情符号之间有 space。例如,我有如下测试字符串。

test = 'abc #yes blabla #No blabla #nah '

这是我当前编写的代码,其中显示:

re.findall(r'\B#\w*[a-zA-Z]+\w*' , test)

['#yes', '#No', '#nah'] 

然而,我的目标答案是:

['#yes', '#No', '#nah']

有人可以帮忙吗?

问题是 \w 等同于 [A-Za-z0-9_] 。请改用 \S(非空白)。

import re

test = 'abc #yes blabla #No blabla #nah '
res = re.findall(r'\B#\S+' , test)
print(res)

输出:

['#yes', '#No', '#nah']