我在表单中有字符串,\d+_\d+
我想在第二个数字上加 1。既然我的解释很清楚,让我举几个例子:
- 1234567_2 应该变成 1234567_3
- 1234_10 应该变成 1234_11
这是我的第一次尝试:
$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)$2)+1, $old);
这会导致语法错误:
解析错误:语法错误,意外的 T_LNUMBER,在第 201 行的 [...] 中需要 T_VARIABLE 或 '$'
这是我的第二次尝试
$new = preg_replace("/(\d+)_(\d+)/", "$1_".("$2"+1), $old);
这会将 $old = 1234567_2 转换为 $new = 1234567_1,这不是想要的效果
我的第三次尝试
$new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)"$2"+1), $old);
这会产生相同的结果。
通过这些尝试,我意识到我不明白新的 $1、$2、$3、.. 变量是如何真正起作用的,所以我真的不知道还能尝试什么,因为这些变量似乎在退出时不再存在preg_replace 函数...
有任何想法吗?