我想知道是否有人可以帮助我找出替代括号内所有内容的正则表达式。
我的例子是:
grouping(elllo)
grouping(function() {
console.log("hello")
})
所以,我想替换与()
匹配的grouping
内的所有内容。
我只进入了这个阶段:
\bgrouping(\(([^)]+)\))
但是,它与第一个)
上的所有换行符和停靠点都不匹配。
答案 0 :(得分:1)
答案 1 :(得分:1)
您可以将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