PhpStorm 查找和替换正则表达式

PhpStorm Find & Replace regex

我对正则表达式感到厌恶,需要将所有只有一个参数的函数替换为那个参数。 aka 删除函数调用,如果只有1个参数则保留参数,否则忽略它。

Some.functionName( OneParameter );
Some.functionName( OneParameter, TwoParameter );

所以用上面的 Some.functionName( OneParameter );会变成

OneParameter

我唯一的想法是:

^Some.functionName([!,])

所以基本上找到所有没有逗号的函数并删除它周围的函数调用。

替换:Some.functionname\(([^,)]*)\)

有:</code></p> <p><code>[^,)]* 匹配任何不包含逗号或右括号的序列。所以如果不包含任何逗号,这将匹配参数列表的内部。

请注意,如果您有嵌套函数调用,这将不起作用,例如

Some.functionname(otherfunc(1));

因为里面的)会结束比赛。正则表达式不擅长匹配平衡分组。