Нужен Groovy способ сделать частичные замены файлов

У меня есть файл, который мне нужно изменить. Часть, которую мне нужно изменить (не весь файл), похожа на свойства, показанные ниже. Проблема в том, что мне нужно только заменить часть «значения», «ConfigurablePart», если хотите. Я получаю этот файл, поэтому не могу контролировать его формат.

alpha.beta.gamma.1 = constantPart1ConfigurablePart1
alpha.beta.gamma.2 = constantPart2ConfigurablePart2
alpha.beta.gamma.3 = constantPart3ConfigurablePart3

Я сделал эту работу таким образом, хотя я знаю, что это действительно плохо!

def updateFile(String pattern, String updatedValue) {
    def myFile = new File(".", "inputs/fileInherited.txt")
    StringBuffer updatedFileText = new StringBuffer()
    def ls = System.getProperty('line.separator')
    myFile.eachLine{ line ->
        def regex = Pattern.compile(/$pattern/)
        def m = (line =~ regex)
        if (m.matches()) {
            def buf = new StringBuffer(line)
            buf.replace(m.start(1), m.end(1), updatedValue)
            line = buf.toString()
        }
        println line
        updatedFileText.append(line).append(ls)
    }
    myFile.write(updatedFileText.toString())
}

Переданный шаблон должен содержать группу, которая подставляется в StringBuffer. Кто-нибудь знает, как это действительно должно быть сделано в Groovy?

РЕДАКТИРОВАТЬ - определить ожидаемый результат

Файл, содержащий примеры строк, необходимо обновить так, чтобы «ConfigurablePart» каждой строки заменялось предоставленным обновленным текстом. Для моего уродливого решения мне нужно будет вызывать метод 3 раза, один раз для замены ConfigurablePart1, один раз для ConfigurablePart2 и, наконец, для ConfigurablePart3. Существует, вероятно, лучший подход к этому тоже !!!

*ОБНОВЛЕНО - Ответь, что сделал то, что мне действительно нужно *

В случае, если другие когда-либо сталкивались с подобной проблемой, улучшения кода, о которых я спрашивал, лучше всего отражаются в принятом ответе. Однако из-за моей проблемы это не совсем решило мои проблемы. Поскольку мне нужно было заменить только часть совпадающих строк, мне нужно было использовать обратные ссылки и группы. Единственный способ, которым я мог сделать эту работу, состоял в том, чтобы определить regEx из трех частей, например:

(.*)(matchThisPart)(.*)

Как только это было сделано, я смог использовать:

it.replaceAdd(~/$pattern/, "\$1$replacement\$3")

Благодаря обоим ответам - каждый мне очень помог!

Ответы на вопрос(2)

Ваш ответ на вопрос