正则表达式替换括号之间的所有内容

Regexp replace everything between parenthes

我想知道是否有人可以帮我找出一个替换括号内所有内容的正则表达式。

我的例子是:

grouping(elllo)

grouping(function() {
   console.log("hello")
})

所以,我想替换 () 中与 grouping 匹配的所有内容。

我只去了这个阶段:

\bgrouping(\(([^)]+)\))

但是,它并不匹配所有的换行符并在第一个 ) 处停止。

正则表达式:

\b(grouping\()(?:\([^()]*\)|[^()])*\)

替换字符串:

foo)

DEMO

您可以将 Ruby 中的平衡括号与条件匹配:

\bgrouping(\((?>[^()]|(\g<1>))*+\))

demo

以下是您在 Ruby 中的操作方法:

rx = /\bgrouping(\((?>[^()]|(\g<1>))*+\))/
txt = "grouping(elllo)\n\ngrouping(function() {\n   console.log(\"hello\")\n})"
puts txt.gsub(rx) { |m| m.gsub($~[1], '(NEWTEXT)') }

IDEONE demo