RegEx与@Tag相匹配

时间:2013-05-24 12:19:54

标签: regex

我想在我的应用程序中实现Tag系统。像@ User1这样的东西会输出<a href="#">@User1</a>

我知道如何用[tag] User1 [/ tag]之类的东西来做,但我不喜欢BBCode风格。 我试过这样的事情:preg_match_all('/@(.*)[\s|\S]/', $str, $matches);但是它不起作用。

有什么建议吗? 谢谢你的帮助

解决方案:

preg_match_all('/@(.+?)\b/', $str, $matches);

1 个答案:

答案 0 :(得分:1)

@(.*)[\s|\S]会将所有内容与最后一个非空格,空格或竖线字符(这就是所有内容)相匹配。我相信你想用

@(.+?)\b

这将匹配每个字符直到第一个单词边界(因为?,不情愿的量词)。还使用了.+,因为用户名中可能至少有一个字符。