$s = 'get_post_title';
echo preg_replace('/(^|_)(\w)/e', 'strtoupper("$2")', $s);

解决方案 »

  1.   


    谢谢斑竹。能说说这个正则式的分析思路么?如果是这样的字符串  :a,b,c,d 变成 'a','b','c','d' 呢?正则又如何写法?
      

  2.   

    这样写比较好,e 属性已经列在废止之列了
    $s = 'a,b,c,d';
    echo preg_replace_callback('/(?:^|,)([a-z])/', function($r) { return "'$r[1]'";}, $s);
      

  3.   

    谢谢啦。不过我在用Javascript实现这个的时候,貌似有些不对。请点解下"get_post_title".replace(/(^|_)(\w)/g,function($2){
    return $2.toUpperCase();
    })//返回这样的结果:Get_Post_Title
    不知道为啥
      

  4.   

     运行的结果不太对。
    我自己这样写的:$s = 'a,b,c,d';
    echo preg_replace_callback('/(\w)/', function($r) { return "'$r[1]'";}, $s);