我试了  '/\[+([a-zA-Z_0-9])+\]/' 也是不行,望各位大虾帮助啊!

解决方案 »

  1.   

    <?php
    $msg='gffgf[cry]eerererer[col]fdfdfdf';
    echo preg_replace('/[[]+([a-zA-Z_0-9]+)[]]/', '<img src=emote/\\1.gif>', $msg);
    ?> output:gffgf<img src=emote/cry.gif>eerererer<img src=emote/col.gif>fdfdfdf
      

  2.   

    哈哈,感谢 iasky(iasky) 提供的方法,问题解决了。
    不过我不明白的是我的程序是:
     preg_replace('/[[]+([a-zA-Z_0-9])+[]]/', '<img src=emote/\\0.gif>', $msg);
    而你的是:
     preg_replace('/[[]+([a-zA-Z_0-9]+)[]]/', '<img src=emote/\\1.gif>', $msg);
    那么为何用 0 就不行,而用 1 就对?
      

  3.   

    preg_match('/[[]+([a-zA-Z_0-9]+)[]]/', $msg, $regs);
    print_r($regs);看看结果就知道为什么了