php - 使用正则表达式从 PHP 函数中提取参数
问题描述
我正在尝试在我的所有 PHP 文件中提取以下字符串的批量替换:
$var->getVar($lc['first_var']['second_var']);
替换为:
$lc['second_var'];
我花了几个小时试图弄清楚,但此时我迷路了。
“second_var”中的变量是动态的,因此相当复杂。有任何想法吗?
我可以$lc['first_var']['second_var']
使用以下内容:
\(([^\)]+)\)
现在我只需要更换['first_var']
,所以我回来了$lc['second_var']
——我在这个阶段的思考过程是忽略['first_var']
——这可能吗,那么我会有我的解决方案吗?
解决方案
模式演示
在记事本++中:
找什么:\$var->getVar\(\$lc\['[^']*'](\['[^']*'])\)
用。。。来代替:\$lc$1
- 反斜杠是对正则表达式引擎具有特殊含义的转义字符。
[^']
是一个否定字符类,意思是“任何不是单引号的字符” 。*
表示零个或多个(尽可能)。$1
替换中的意思是“捕获组 1”——这是第二个变量。
)
ps仅供参考,当它位于否定字符类中时(从您的尝试中),您不需要添加斜杠。
推荐阅读
- python - 从另一个模块中的类导入函数
- mysql - 使用 aws dms 仅按特定列将 mongodb 表迁移到 mysql
- python - 在 tmux 中运行脚本时用 python 写入传感器读出
- c# - 将现有 C# 代码编译为 WebAssembly
- angular - Angular 在另一个模板中丢失 ViewChild 模板
- javascript - 使用 Fetch Javascript 替换刀片 foreach 循环的值
- r - 从不同的表中选择行,其中第一个表列中的字符串存在于 R 中
- android - Android 上的 Kivymd 应用程序与我的 Mac 具有不同的颜色图标
- flutter - Flutter相机插件,在重新编码停止之前获取路径
- django - Django 通道自定义权限系统