0

我需要将 preg 变量降低一。例子:

$code = A4-7;
$new = preg_replace('/A([0-9])\-([0-9])/', 'S($1-1)-$2', $code);

我需要做类似的事情,所以 preg replace 返回 S3-7。有什么办法吗?

4

2 回答 2

1

试试这个(使用 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-02T11:09:04.867 回答
0

您必须先提取值,对提取的值执行数学运算,然后重建字符串以实现您想要的。

例如:

<?php
$code = 'A4-7';
preg_match('/A([0-9])\-([0-9])/', $code, $matches);
$new = 'S'.($matches[1]-1).'-'.$matches[2];
?>
于 2013-09-02T11:07:23.687 回答