假设我有一个文本,
$text = '@stackguy @flowguy I need to learn more advanced php #ilovephp';
我想分别用这两个锚标签替换 @stackguy 和 @flowguy。这也应该适用于文本字符串中任意数量的@。
<a href="url/stackguy">@stackguy</a>
<a href="url/flowguy">@flowguy</a>
我也想用#ilovephp替换
<a href="search/ilovephp">#ilovephp</a>
它也应该适用于多个#。我猜它会是这样的
preg_replace_callback('regex',
create_function('$matches', '
switch ($matches[1]) {
case "@":
return "<a href=url.$matches[2]'/'>" . $matches[2] . "</a>";
case "#":
return "<a>" . $matches[2] . "</a>";
}
'), $var);
正则表达式会是什么样子?我的函数是要匹配所有需要的还是我需要添加一个 foreach 循环?谢谢。