首页 > 解决方案 > 使用正则表达式从 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']——这可能吗,那么我会有我的解决方案吗?

标签: phpregex

解决方案


模式演示

在记事本++中:

找什么:\$var->getVar\(\$lc\['[^']*'](\['[^']*'])\)

用。。。来代替:\$lc$1

  • 反斜杠是对正则表达式引擎具有特殊含义的转义字符。
  • [^']是一个否定字符类,意思是“任何不是单引号的字符” 。
  • *表示零个或多个(尽可能)。
  • $1替换中的意思是“捕获组 1”——这是第二个变量。

)ps仅供参考,当它位于否定字符类中时(从您的尝试中),您不需要添加斜杠。


推荐阅读