我有以下Java代码片段:
def offer = new OfferBuilder().id(1)
.rulesId(1)
.secondaryRulesId(0L)
.code("test code")
.characteristics([characteristics])
.build()
我希望您可以用下面的Groovy代码替换它:
def offer = new Offer(id: 1, rulesId: 1, secondaryRulesId: 0L, code: "test code", characteristics: [characteristics])
我正在使用Intellij内置的正则表达式进行替换:
new (\w+)Builder\((\)\s?\.(\w+)\(([a-zA-Z0-9\" \[\]]+))+\).build\(\)
替换字符串:
new $1($3: $4)
问题在于我只能替换匹配组的最后一个出现,所以它输出:
def offer = new Offer(characteristics: [characteristics])
我一直在尝试在重复组上使用捕获,但仍然无法使其工作。请问还有什么遗漏吗?