我需要将 preg 变量降低一。例子:
$code = A4-7;
$new = preg_replace('/A([0-9])\-([0-9])/', 'S($1-1)-$2', $code);
我需要做类似的事情,所以 preg replace 返回 S3-7。有什么办法吗?
我需要将 preg 变量降低一。例子:
$code = A4-7;
$new = preg_replace('/A([0-9])\-([0-9])/', 'S($1-1)-$2', $code);
我需要做类似的事情,所以 preg replace 返回 S3-7。有什么办法吗?
试试这个(使用 preg_replace_callback)
$code = "A4-7";
function myfunc($matches)
{
return 'S'.($matches[1]-1).'-'.$matches[2];
}
echo preg_replace_callback("#A(\d)-(\d)#","myfunc",$code);
您必须先提取值,对提取的值执行数学运算,然后重建字符串以实现您想要的。
例如:
<?php
$code = 'A4-7';
preg_match('/A([0-9])\-([0-9])/', $code, $matches);
$new = 'S'.($matches[1]-1).'-'.$matches[2];
?>