import java.util.* fun main(args: Array) { val environment = "dev" val projectName = "whoamiMn" val regex = """(environments: |(?:\R\h{2}.*)*?\R\h{2}$environment: |(?:\R\h{4}.*)*?\R\h{6}-\h*$projectName: |(?:\R\h{10}.*)*?\R\h{10} |version:\h*)\S+ """.trimMargin().toRegex(RegexOption.COMMENTS) //println(regex) val helmfileContent = """environments: local: values: - kubeContext: default - surfScreenshotter: installed: false version: 0 - whoamiMn: installed: false version: 0 dev: values: - kubeContext: nuc - surfScreenshotter: installed: false version: 0 - whoamiMn: installed: false version: 0""" val version = "1.2.4" val updatedHelmfile = regex.replaceFirst(helmfileContent, "$1" + version) println(updatedHelmfile) }