我有一个返回单词的正则表达式(排除@mentions包含主题标签但删除了哈希标志#)
import re
pattern=r'(?u)(?<![@])\b\w\w+\b'
pattern=re.compile(pattern)
pattern.findall('this is a tweet #hashtag @mention')
返回
['this', 'is', 'tweet', 'hashtag']
我需要的是对此正则表达式的修改,该正则表达式返回带有#标签的哈希符号,因此它应该返回:
['this', 'is', 'tweet', '#hashtag']
请注意,我的问题不仅仅是返回@mentions和#hashtags我想要常规词和标签但我不想要@mentions。
答案 0 :(得分:2)
添加&#39;#?&#39;对于模式,它将匹配以0或1个哈希符号开头的单词。
import re
pattern=r'(?u)(?<![@])#?\b\w\w+\b'
pattern=re.compile(pattern)
results = pattern.findall('this is a tweet #hashtag @mention')
print(results)
导致:
['this', 'is', 'tweet', '#hashtag']