php正则表达式匹配问题

时间:2016-12-11 20:03:54

标签: php preg-replace preg-match

我有这种输出: 1342&安培; -4安培; -6 它可能会更多次或更少: 1342& -4(我需要将其替换为:1342,1344) 1340& -1& -3& -5& -7(我需要替换为:1340,1341,1343,1345,1347)

我尝试过使用preg_match,但没有成功, 有人可以帮我吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

$array = explode('&-', $string);

$len = count($array);

for($i=1; $i<$len; $i++)

    $array[$i] += $array[0]  / 10 * 10;

var_dump(implode(' ', $array));

答案 1 :(得分:1)

<?php



//so if you had sting input of "1342&-4" you would get 2 stings returned "1342" and "1344"? 

//1340&-1&-3&-5&-7 --> 1340 and 1341 and 1343 and 1345 and 1347

//$str="1342&-4";
$str="1340&-1&-3&-5&-7";
$x=explode('&-',$str);

//print_r($x);

foreach ($x as $k=> $v){
    if($k==0){
        //echo raw
        echo $v."<br>";
    }else{
    //remove last number add new last number 
    echo substr($x[0], 0, -1).$v."<br>"; 
    }
}

输出:

1340
1341
1343
1345
1347

我使用<br>你可以使用你需要的东西或添加到一个新的变量(数组)