我需要把preg变量降低一个。示例:
$code = A4-7;
$new = preg_replace('/A([0-9])\-([0-9])/', 'S($1-1)-$2', $code);我需要这样做,所以preg替换返回S3-7。有什么办法吗?
发布于 2013-09-02 11:09:04
试试这个(使用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);发布于 2013-09-02 11:07:23
您必须首先提取值,对提取的值执行数学操作,然后重建字符串以实现您想要的结果。
例如:
<?php
$code = 'A4-7';
preg_match('/A([0-9])\-([0-9])/', $code, $matches);
$new = 'S'.($matches[1]-1).'-'.$matches[2];
?>https://stackoverflow.com/questions/18571697
复制相似问题