我需要在python中编写一个正则表达式以从Tweets中提取提及。
我的尝试:
regex=re.compile(r"(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9]+)")
对于@mickey之类的任何提及,它都可以正常工作,但是,在带有@mickey_mouse之类的下划线的提及中,它仅提取@mickey。
如何修改正则表达式以使其在两种情况下均能正常工作?
谢谢
在下一组添加下划线,如下所示:
(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9_]+)
Regex101演示
另外,Twitter Handle规则允许您使用以数字和下划线开头的用户名。因此,提取twitter处理正则表达式可能很简单:(@\w{1,15} 允许使用字符,数字和下划线,并包括15个字符的限制) 。根据可能使用的正则表达式,还需要一些额外的前瞻/后顾之忧。
@\w{1,15}