当前位置: 首页 > 面试题库 >

regex提取Twitter中的提及

许高峻
2023-03-14
问题内容

我需要在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个字符的限制) 。根据可能使用的正则表达式,还需要一些额外的前瞻/后顾之忧。



 类似资料:
  • 美化的json响应: } 我需要提取docId、id、nameId,因为我总是知道代码。 添加了groovy脚本来设置参数:

  • 此regex:使用多个组匹配表达式。regex的要点是它捕获两个成对的模式,其中regex的第一部分必须跟在regex的第二部分后面。 如何提取这两个组中的每一个? 这里的关键是regex匹配两次,每次包含2个组。我希望每个匹配都有一个它自己的列表,这个列表包含2个元素,每个组一个。

  • 问题内容: 我正在尝试提取其中的任何数据。 例如,从此字符串提取的数据应为。 这是实际的代码: 但这行不通,知道吗? 问题答案: 您需要转义,并在正则表达式中。 Golang示范 在正则表达式中 您也可以使用

  • 我试图从Splunk payload_printable字段中提取一个域(源是Suricata日志),发现这个正则表达式在大多数情况下都能正常工作: 正则表达式为: 我不知道该怎么做。谢谢你的帮助。

  • #substr($(sometext),1,3)-->['$(sometext)','1','3'] #substr(#trim(你好),1,3)--->['#trim(你好)‘,'1','3'] #substr(#replace(hello-world,hello,hi),1,3)-->['#replace(hello-world,hello,hi)','1','3'] 当我们有这样的嵌套函数时

  • 因此,基本上,匹配的目标是提取模式,如、、。 我使用了这个regex:。但是我得到了这个错误: