替换单词分隔符的 RegEx 表达式

RegEx expression to replace delimiters separating words

在 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('..)。 两个键控表达式的第二步:$trad\s?\['([\w\-]+)']\['([\w\-]+)'\]([^\[]) 替换为 lang('.')。我优化了代码以避免超过 3 个键。