如何从“xyz123”字符串中仅提取数值,然后在第一个数字中添加5,即1,然后在最终输出中打印xyz623

时间:2013-12-31 19:31:56

标签: php arrays

如何仅从“xyz123”字符串中提取数值,然后在第一个数字中添加5,即1,然后在最终输出中打印xyz623。

if(isset($login)){
    $length = strlen($pass);
    $c = false;
    for($i=0; $i<$length; $i++){
        if(preg_match('/^[0-9]$/',$pass[$i]) && $c==false){
            $a = (int)$pass[$i];
            $b = $a + 5;
            echo "<br>".$b."<br>";
            $c = true;
        }
    }

}

1 个答案:

答案 0 :(得分:0)

使用preg_replace_callback()

$str = 'xyz123';

$output = preg_replace_callback('/([a-z]+)(\d{1})/i', function($m) {
    $added = $m[2] + 5;    // adding 5 to the number
    return $m[1] . $added; // return the concatenated string
}, $str);

echo $output; // => xyz623

Demo.