php - 如何从字符串中添加数字
问题描述
我想从我的字符串中添加数字。这是我的字符串
$formula = 'IF(B15="","",IF(ISNUMBER(A14),A14+1,IF(ISNUMBER(B3),B3+1,1)))';
如果数字之前是字母,我想添加数字。例如我想让 B15 到 B16 ini 我的字符串.. 这是我的循环
$jum = strlen($formula);
for($i = 0; $i < $jum; $i++){
if(ctype_alpha($formula[$i]) && ctype_alnum($formula[$i+1])){
$temp_formula[$i+1] += 1;
}
}
解决方案
您可以使用 preg_replace_callback
. <letter><digits>
使用这个正则表达式,它在单词边界之间寻找形式的符号:
\b([A-Z])(\d+)\b
然后在回调中第二组的值可以增加:
$formula = 'IF(B15="","",IF(ISNUMBER(A14),A14+1,IF(ISNUMBER(B3),B3+1,1)))';
echo preg_replace_callback('/\b([A-Z])(\d+)\b/', function ($m) {
return $m[1] . (1 + $m[2]);
}, $formula);
输出:
IF(B16="","",IF(ISNUMBER(A15),A15+1,IF(ISNUMBER(B4),B4+1,1)))
更新
要在回调中使用外部变量(如注释中所述),请编辑如下代码:
$formula = 'IF(B15="","",IF(ISNUMBER(A14),A14+1,IF(ISNUMBER(B3),B3+1,1)))';
$tambah = $adding + ($rekord*$highest);
echo preg_replace_callback('/\b([A-Z])(\d+)\b/', function ($m) use ($tambah) {
return $m[1] . ($tambah + $m[2]);
}, $formula);
推荐阅读
- typescript - 如何在 vscode 错误中调试打字稿节点应用程序
- linux - Call SQL Server from a Linux Container without Passwords in the Connection String
- javascript - 有没有办法使用 pg-promise 对从 PostgreSQL 返回的列名进行骆驼案例分析?
- c++ - C++ 中复杂问题的手动矢量化/SSE
- google-bigquery - BigQuery中sql函数的执行顺序是什么
- javascript - How to make a method chain conditional?
- php - for循环如何工作?它有什么问题?
- amazon-web-services - AWS Step Function 中基于数组中的项目数的分支流程
- java - Java Spring Map
> 作为请求参数 - python - 无法使用 Django REST 框架提交发布请求(“详细信息”:“CSRF 失败:CSRF 令牌丢失或不正确。”)