使用正则表达式从PHP函数中提取参数

使用正则表达式从PHP函数中提取参数,php,regex,Php,Regex,我正试图在我的所有PHP文件中提取并大量替换以下字符串: $var->getVar($lc['first_var']['second_var']); 替换为: $lc['second_var']; 我花了几个小时想弄明白,但现在我迷路了 “second_var”中的变量是动态的,因此相当复杂。有什么想法吗 我可以通过以下方式获得$lc['first\u var']['second\u var']: \(([^\)]+)\) 现在我只需要替换['first\u var'],所以我回到$

我正试图在我的所有PHP文件中提取并大量替换以下字符串:

$var->getVar($lc['first_var']['second_var']);
替换为:

$lc['second_var'];
我花了几个小时想弄明白,但现在我迷路了

“second_var”中的变量是动态的,因此相当复杂。有什么想法吗

我可以通过以下方式获得
$lc['first\u var']['second\u var']

\(([^\)]+)\)
现在我只需要替换
['first\u var']
,所以我回到
$lc['second\u var']
-我在这个阶段的思想过程是忽略
['first\u var']
-这可能吗,然后我会有我的解决方案?

模式

在记事本++中:

查找内容:
\$var->getVar\(\$lc\['[^']*'](\['[^']*'])\)

替换为:
\$lc$1

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

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

请添加最新的尝试以查看问题所在。@WiktorStribiżew我的大多数尝试都是通过生成器进行的,因为我对正则表达式的理解不太清楚。我们可以看到一些实际的示例输入和该输入的预期输出吗?让我们看看你失败的尝试。@mickmackusa请看我上面的评论。我们需要看到——作为一个原则问题。我们不打算在这里提供免费的编码服务。糟糕的尝试在这里是完全可以接受的。太好了,非常感谢!你有没有关于正则表达式的好资源来更好地学习它?是一个伟大的,免费的,有教育意义的地方来尝试你的模式。是一个信息量很大的资源。老实说,这需要练习。我还建议在StackOverflow上观看大师赛——Wiktor总是很有价值的(去他的个人资料和troll查看他的regex答案,他们总是有解释)。非常感谢@mickmackusa-这真的很有帮助!