正则表达式:查找和替换

regex: find and replace

我需要将字符串 x(y(str)) 替换为 z(str)

它也应该缩小空白。例如: x ( y (str) ) 也应替换为 z(str)

我可以写一个简单的 perl one liner 来用 'z(' 替换 'x(y(':

% echo "x(y(str))" | perl -pi -w -e 's/x\s*\(y\s*/z/g;'

但我不知道如何在同一行中用 ')' 替换 '))'。

perl -pe's/ x \s* \( \s* y \s* (.*?) \s* \) \s* \) /z()/xg'

您可能想要前导 \b