所以我找到了这个正则表达式:
(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9-_]+)
此问题:regex for Twitter username
但这在返回时会忽略句柄中的实际“ @”。我试图对其进行编辑以使其包含@,但没有成功。我想返回“ @用户名”而不是“用户名”。如何编辑此正则表达式以包含“ @”?
答案 0 :(得分:2)
基本上,您需要将@
放入要返回的捕获组中。但是,该模式是高度神秘的,可以大大简化。
(?<![\w.-])@[A-Za-z][\w-]+
请参见regex demo
详细信息
(?<![\w.-])
-如果在当前位置的左侧紧邻有单词char或.
或-
@
-一个@
字符[A-Za-z]
-ASCII字母[\w-]+
-1个或多个单词字符或连字符。在Python 3中,使用re.ASCII
标志编译模式以使\w
仅匹配ASCII字母和数字。