我正在尝试确定用户是否输入了其他人的用户名,如果在其前面输入了符号(@),就像在Twitter上一样。我的函数可以识别@符号和后面的用户名,但它包含一个空格键(如果有的话)。
这是我的正则表达式
/@([A-Za-z0-9_]+)(\s|\Z)/
让我们说用户输入
@testificate blah blah blah
我的功能将选择以下(|符号之间)
|@testificate |blah blah blah
当我真正想要的是选择
时|@testificate| blah blah blah
它包括之后的空间,这不是我想要的。有一个更好的方法吗?我正在将@标签转换为带有preg_replace的链接,任何人都可以帮助我吗?感谢
答案 0 :(得分:2)
为什么要添加(\s|\Z)
?
\s space
\Z End of subject or newline at end
Regex: /@([A-Za-z0-9_]+)/
davidchambers 的建议
Shorter Regex: /@(\w)+/