我想在我的应用程序中实现Tag系统。像@ User1这样的东西会输出<a href="#">@User1</a>
我知道如何用[tag] User1 [/ tag]之类的东西来做,但我不喜欢BBCode风格。
我试过这样的事情:preg_match_all('/@(.*)[\s|\S]/', $str, $matches);
但是它不起作用。
有什么建议吗? 谢谢你的帮助
解决方案:
preg_match_all('/@(.+?)\b/', $str, $matches);
答案 0 :(得分:1)
@(.*)[\s|\S]
会将所有内容与最后一个非空格,空格或竖线字符(这就是所有内容)相匹配。我相信你想用
@(.+?)\b
这将匹配每个字符直到第一个单词边界(因为?
,不情愿的量词)。还使用了.+
,因为用户名中可能至少有一个字符。