I have some Groovy code (actually from a Jenkinsfile):
fileNew = fileOld.replaceAll("((D:)((.*)\\\\(.*))*)") {
it[0].replaceAll("D:", "/xxx/yyyy")
it[0].replaceAll("\\\\", "/")
}
writeFile file: 'my-output-file', text: fileNew
The code correctly matches the lines marked by the pattern in fileOld.replaceAll
(as shown if I println it[0]
) but there is no replacement in the written file. How can I get that to work?
CodePudding user response:
From what I'm seeing in the docs here it wouldn't work to call replaceAll
inside of the replaceAll
closure. I think maybe you just need to do two separate replaceAll
calls, searching for the "D:"
and "\\\\"
separately.
CodePudding user response:
I was messing around with some different things and maybe using the original replaceAll
would work.
fileNew = fileOld.replaceAll("((D:)((.*)\\\\(.*))*)") {
it[0] = it[0].replace("D:", "/xxx/yyyy")
it[0].replace("\\\\", "/")
}
That worked for me but I wasn't positive what fileOld
would look like so I had to guess a little there.