$str='AAA@BBB SSS@DDD @GGG ';
echo preg_replace('/@(.*) /is','<a href="$1">\\1</a>',$str);
这段代码显示了 从BBB开始到GGG都变成超链接了,而我想要的是@后面要有超链接 用空格来分隔 所以我希望上面那段代码显示的是:AAABBB SSSDDD GGG

解决方案 »

  1.   

    $str='AAA@BBB SSS@DDD @GGG ';
    echo preg_replace('/@([^ ]*) /is','<a href="$1">\\1</a>',$str);AAA<a href="BBB">BBB</a>SSS<a href="DDD">DDD</a><a href="GGG">GGG</a>
      

  2.   

    echo preg_replace('/@([^@]*) /is','<a href="$1">\\1</a>',$str);
      

  3.   

    啊写错了,应该是
    echo preg_replace('/@([^ ]*) /is','<a href="$1">\\1</a>',$str);
      

  4.   

    请问下高手 /@([^ ]*) /is []里面的是什么意思 还有 is是什么意思 谢谢