PHP Regex正则表达式包括空格

时间:2011-11-22 09:00:14

标签: php regex

我正在尝试确定用户是否输入了其他人的用户名,如果在其前面输入了符号(@),就像在Twitter上一样。我的函数可以识别@符号和后面的用户名,但它包含一个空格键(如果有的话)。

这是我的正则表达式

/@([A-Za-z0-9_]+)(\s|\Z)/

让我们说用户输入

@testificate blah blah blah

我的功能将选择以下(|符号之间)

|@testificate |blah blah blah

当我真正想要的是选择

|@testificate| blah blah blah

它包括之后的空间,这不是我想要的。有一个更好的方法吗?我正在将@标签转换为带有preg_replace的链接,任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:2)

为什么要添加(\s|\Z)

\s space
\Z End of subject or newline at end

Regex: /@([A-Za-z0-9_]+)/

编辑:

davidchambers 的建议

Shorter Regex: /@(\w)+/