问题描述
在 PHPStorm 中,我想通过以下方式用函数调用替换 PHP 数组变量:
$Trad['newsletter']['title']['something'];
$Trad['newsletter']['placeholder'];
$Trad['buttons']['send']['text']['small'];
结果是:
lang('newsletter.title.something');
lang('newsletter.placeholder');
lang('buttons.send.text.small');
我已经尝试过表达
\$Trad\s?\[(.+('\]\[').+)\]
但只捕获最后一次出现的 ']['
解决方法
三个键表达式的第一步:\$trad\s?\['([\w\-]+)']\['([\w\-]+)']\['([\w\-]+)'\]([^\[])
替换为 lang('$1.$2.$3)$4
。
两个键表达式的第二步:\$trad\s?\['([\w\-]+)']\['([\w\-]+)'\]([^\[])
替换为 lang('$1.$2')$3
。我优化了代码以避免超过 3 个键。