php正则替换:2 9 8 8 12 15 + 8 这是一串数字(数字的个数不一定),数字间的空格数量不一定;
2 9 8 8 12 15 8 这是一串数字(数字的个数不一定),数字间的空格数量不一定;我想用正则替换做成2,9,8,8,12,15+8 即最后一个数字前面用+号割开,其他用,号割开
$lot='2011130 2 9 12 15 17';
$lot2=preg_replace('/\s/',',',$lot);
echo $lot2;//数字之间用逗号割开
$lot3=preg_replace('/,{1}$1/','+',$lot2);//重写,从后面匹配替换,替换第一个,号为+号
echo $lot3;
为什么第二步替换不好使呢?应该怎么写? 谢谢
补充:能不能用正则的方法从后面替换,把最后俩个数字之间替换成用+号连接
答案:$str='2 9 8 8 12 15 8';
$str=preg_replace('/[\s]{1,}/',',',trim($str));
$str=preg_replace('/(\,)([0-9]){0,}$/',"+\\2",$str);
结果是2,9,8,8,12,15+8
可以参考下
其他:我的方法比较麻烦参考一下吧
<?php
$str="2 9 8 8 12 15 8";
$str_array=explode(" ",$str);//用空格分格数组
$str_array=array_filter($str_array);//过滤数组
$str_array=explode(",",implode(",",$str_array));//重新排序数组
$str_array_end=$str_array[count($str_array)-1];//获取最后一个数组单元
array_pop($str_array);//将数组最后一个单元弹出(出栈)
$str_res=implode(",",$str_array);//用,连接数组单元
$result=$str_res."+".$str_array_end;//得到最终结果
echo $result;//结果:2,9,8,8,12,15+8
?> preg_replace('/\s+([0-9])+$/',"+\\1",trim($str)) 天羽人体
上一个:在线人员的检测用php怎么写
下一个:请教PHP程序员问题