相关疑难解决方法(0)

如何在PHP中查找,增加和替换?

我在表单中有字符串,\d+_\d+我想在第二个数字中添加1.由于我的解释非常清楚,让我举几个例子:

  • 1234567_2应该变为1234567_3
  • 1234_10应该变成1234_11

这是我的第一次尝试:

$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)$2)+1, $old);
Run Code Online (Sandbox Code Playgroud)

这会导致语法错误:

解析错误:语法错误,意外T_LNUMBER,在[...] 201行上预期T_VARIABLE或'$'

这是我的第二次尝试

$new = preg_replace("/(\d+)_(\d+)/", "$1_".("$2"+1), $old);
Run Code Online (Sandbox Code Playgroud)

这会将$ old = 1234567_2转换为$ new = 1234567_1,这不是所需的效果

我的第三次尝试

$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)"$2"+1), $old);
Run Code Online (Sandbox Code Playgroud)

这产生了同样的结果.

通过做这些尝试,我意识到我不明白新的$ 1,$ 2,$ 3,..变量是如何工作的,所以我真的不知道还有什么可以尝试,因为看起来这些变量在退出时不再存在preg_replace函数...

有任何想法吗?

php regex backreference preg-replace

2
推荐指数
1
解决办法
1970
查看次数

标签 统计

backreference ×1

php ×1

preg-replace ×1

regex ×1