Python Regex Twitter用户名,包括@

时间:2018-12-04 14:27:57

标签: python regex

所以我找到了这个正则表达式:

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

此问题:regex for Twitter username

但这在返回时会忽略句柄中的实际“ @”。我试图对其进行编辑以使其包含@,但没有成功。我想返回“ @用户名”而不是“用户名”。如何编辑此正则表达式以包含“ @”?

1 个答案:

答案 0 :(得分:2)

基本上,您需要将@放入要返回的捕获组中。但是,该模式是高度神秘的,可以大大简化。

(?<![\w.-])@[A-Za-z][\w-]+

请参见regex demo

详细信息

  • (?<![\w.-])-如果在当前位置的左侧紧邻有单词char或.-
  • ,则负向后搜索将使匹配失败
  • @-一个@字符
  • [A-Za-z]-ASCII字母
  • [\w-]+-1个或多个单词字符或连字符。

在Python 3中,使用re.ASCII标志编译模式以使\w仅匹配ASCII字母和数字。