正则表达式返回带有哈希符号的哈希标签,但不包括@ mentions

时间:2017-04-06 01:30:50

标签: python regex regex-lookarounds regex-group

我有一个返回单词的正则表达式(排除@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。

1 个答案:

答案 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']