我有一些Groovy代码(实际上来自Jenkinsfile):
fileNew = fileOld.replaceAll("((D:)((.*)\\(.*))*)") {
it[0].replaceAll("D:", "/xxx/yyyy")
it[0].replaceAll("\\", "/")
}
writeFile file: 'my-output-file', text: fileNew
代码与fileOld.replaceAll
中由模式标记的行正确匹配(如iprintln it[0]
所示),但在写入的文件中没有替换。我怎么才能让它起作用呢?
2条答案
按热度按时间31moq8wy1#
从我在这里看到的文档来看,在
replaceAll
闭包中调用replaceAll
是不起作用的。我认为您可能只需要执行两个单独的replaceAll
调用,分别搜索"D:"
和"\\\\"
。r3i60tvu2#
我在摆弄一些不同的东西,也许用原来的
replaceAll
就可以了。这对我来说很管用,但我不确定
fileOld
会是什么样子,所以我不得不猜测一下。