比如我有一张/uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501.jpg我想把它路径换成/uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501_m.jpg 但是也有可能他的后缀名是/uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501.gif或.png的相应要替换成/uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501m_.gif 请问正则如何操作?

解决方案 »

  1.   

    <?php 
    $str = "/uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501.jpg";
    echo preg_replace("#(/uploads/201014/.*)(\..*)#","\${1}_m\${2}",$str);///uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501_m.jpg
    ?>
      

  2.   

    借用楼上的,稍微改了下,目录不写死
    preg_replace("#(/[^/]+/[^/]+/.+)(\..+)#", "\${1}_m\${2}",$str);
      

  3.   

    preg_replace('/([^\.]+)\.([^ ]+)/',"\${1}_m\${2}",$str);
    LZ 后面的没说清楚吧,.gif或.png 要换成什么样的呢;
      

  4.   

    谢谢楼上几位大哥 
    就是说有一图片这种图片有格式有可能是gif或jpg或png或bmp的 加入是a.jpg我就需要把他换成a_m.jpg a.gif我就需要把他换成a_m.gif 就是这样但是格式是不确定的 不知明白否?
      

  5.   

    $str = '/uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501.jpg';
    echo preg_replace("@([^\.]+)\.(.+)@i","$1_m.$2",$str);
    //output
    /uploads/201014/A307DDB63C9AC4BFC5FA03B452A31D7C_1270519676501_m.jpg