小编典典

regex提取Twitter中的提及

python

我需要在python中编写一个正则表达式以从Tweets中提取提及。

我的尝试:

regex=re.compile(r"(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9]+)")

对于@mickey之类的任何提及,它都可以正常工作,但是,在带有@mickey_mouse之类的下划线的提及中,它仅提取@mickey。

如何修改正则表达式以使其在两种情况下均能正常工作?

谢谢


阅读 198

收藏
2021-01-20

共1个答案

小编典典

在下一组添加下划线,如下所示:

(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9_]+)

Regex101演示

另外,Twitter
Handle规则
允许您使用以数字和下划线开头的用户名。因此,提取twitter处理正则表达式可能很简单:(@\w{1,15}
允许使用字符,数字和下划线,并包括15个字符的限制) 。根据可能使用的正则表达式,还需要一些额外的前瞻/后顾之忧。

2021-01-20