(1)perl格式的
$str="42,53,56十二码,31,-76十二码,80,90,4,-49,21,90,6,-49,88,90,21,50十二码,75,25,83,36十二";
$str=",".$str;
preg_match_all("/,(\d\d*)/",$str,$arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
$str="42,53,56十二码,31,-76十二码,80,90,4,-49,21,90,6,-49,88,90,21,50十二码,75,25,83,36十二";
$str=",".$str;
preg_match_all("/,(\d\d*)/",$str,$arr);
echo "<pre>";
print_r($arr);
echo "</pre>";
preg_match_all("/,(\d+)/",$str,$arr);
更简单一些。
/* BEGIN function 功能:获得匹配的字符串
编写时间:2003.7.14
编写人:
变量:$str
返回值:string
*/
function matchstr($str) {
global $total;
$str=",".$str;
preg_match_all("/,(\d+)/",$str,$arr);
for($i=0; $i<count($arr[0]); $i++) {
$total[$i].= $arr[0][$i];
}
Return $total;
}
/* END function *///调用
$str="42,53,56十二码,31,-76十二码,80,90,4,-49,21,90,6,-49,88,90,21,50十二码,75,25,83,36十二";
$string=matchstr($str);//返回的数组赋给一个变量$string//以后想怎么办就怎么办吧 ^_^/*
for($i=0; $i<count($string); $i++) {
$str_all.=$string[$i];
}
$array=explode(',',$str_all);
for($j=1; $j<count($array); $j++) {
$getstring.=$array[$j].',';
}echo "$getstring";
*/
?>
{
//$string = ",".$string;
$string = preg_replace("/\,+/",",",$string);
$string = preg_replace("/^\,/","",$string);
$string = preg_replace("/\,$/","",$string);
preg_match_all("/,(\d+)/",$string,$arr);
while (list($v ,$a) = each($arr[1]))
{
$string_arr[] = $a;
}
reset($string_arr);
return $string_arr;
}
{
preg_match_all("/,(\d+)/",",".$str,$arr);
return $arr[1];
}
$str="42,53,56十二码,31,-76十二码,80,90,4,-49,21,90,6,-49,88,90,21,50十二码,75,25,83,36十二";
$arr=match_str($str);
echo "<pre>";
print_r($arr);
echo "</pre>";
得到字符串可以使用
$str=implode(",",$arr); //可以得到一个用,分隔的字符串
$arr=explode(",",$str);//把用,隔开的字符串切割成一个数组
function match_str($str)
{
preg_match_all("/(?=^|,),?(\d+)/",$str,$arr);
//preg_match_all("/(?=^|,),?((?:--)*\d+)/",$str,$arr);
return $arr[1];
}
$str="42,53,56十二码,31,-76十二码,80,90,4,-49,21,90,6,-49,88,90,21,50十二码,75,25,83,36十二";
$arr=match_str($str);
echo "<pre>";
print_r($arr);
echo "</pre>";
exit;
我这么认为的,不知道还有没有更好的做法