我的字符串:
'KCP-PRO;first_name last_name;address;zipcode;country' //for example: 'KCP-PRO;Jon Doe;Box 564;02201;USA'
or
'KCP-SAT-PRO;first_name last_name;address;zipcode;country'
如何更改第一部分(KCP-PRO或KCP-SAT-PRO)并将其更改为(KCP,PRO或KCP,SAT,PRO)?结果必须是:
'KCP,PRO;first_name last_name;address;zipcode;country'
or
'KCP,SAT,PRO;first_name last_name;address;zipcode;country'
答案 0 :(得分:3)
我自己没有尝试过代码,但我想这会解决问题
$string = 'KCP-SAT-PRO;first_name last_name;address;zipcode;country';
$stringExploded = explode(';', $string);
$stringExploded[0] = str_replace('-', ',', $stringExploded[0]);
$output = implode(';', $stringExploded);
//output should be KCP,SAT,PRO;first_name last_name;address;zipcode;country
希望这会有所帮助:)
答案 1 :(得分:1)
或者您可以将preg_replace_callback
函数与以下正则表达式一起使用
^[^;]*
所以你的代码看起来像
echo preg_replace_callback("/^[^;]*/",function($m){
return str_replace("-",',',$m[0]);
},"KCP-SAT-PRO;first_name last_name;address;zipcode;country");