0

我想在我的应用程序中实现一个标签系统。@User1 之类的东西会输出<a href="#">@User1</a>

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

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

解决方案:

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

4

1 回答 1

1

@(.*)[\s|\S]将匹配所有内容,直到最后一个非空格、空格或管道字符(即一切)。我相信你想用

@(.+?)\b

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

于 2013-05-24T12:27:31.113 回答