匹配Twitter @username,但不匹配电子邮件

Jon*_*ieu 4 php regex twitter

好的,所以我对正则表达式很恐怖,需要一些帮助.我发现此代码与推特用户名相匹配:

'/(?<=^|\s)@([a-z0-9_]+)/i
Run Code Online (Sandbox Code Playgroud)

这在大多数情况下都有效,除非在@username之前放置HTML标记,例如:

<p>@username</p>
Run Code Online (Sandbox Code Playgroud)

这对我来说是一个问题,因为它会发生在我正在做的事情上.

然后有这个,它可以工作,但也检测电子邮件地址,这不是我想要的:

/^[A-Za-z0-9_]+$/
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

hak*_*kre 5

如果html标记结束>是问题,请将其添加到lookbehind组:

'/(?<=^|\s|>)@([a-z0-9_]+)/i
Run Code Online (Sandbox Code Playgroud)