import java.util.*
fun transformation(input: String, findRegex: String, replaceRegex: String): String =
input.replace("""\D+""".toRegex(), "").replace(findRegex.toRegex(), {
it.groupValues[1].toString() +
(if (!it.groupValues[2].isNullOrEmpty()) ".${it.groupValues[2].toString()}" else "") +
(if (!it.groupValues[3].isNullOrEmpty()) ".${it.groupValues[3].toString()}" else "") +
(if (!it.groupValues[4].isNullOrEmpty()) "-${it.groupValues[4].toString()}" else "")
})
fun main(args: Array<String>) {
val input = "0112121234" // 011.212.123-4
// val input = "011" // 011
// val input = "01121212" // 011.212.12
// val input = "011212" // 011.212
// val input = "01121" // 011.21
// val input = "0112" // 011.2
val findRegex = """^(\d{3})(\d{1,3})?(\d{1,3})?(\d{1,2})?$"""
val replaceRegex = """$1.$2.$3-$4"""
val result = transformation(input, findRegex, replaceRegex)
println(result)
}
aW1wb3J0IGphdmEudXRpbC4qCgpmdW4gdHJhbnNmb3JtYXRpb24oaW5wdXQ6IFN0cmluZywgZmluZFJlZ2V4OiBTdHJpbmcsIHJlcGxhY2VSZWdleDogU3RyaW5nKTogU3RyaW5nID0KICAgIGlucHV0LnJlcGxhY2UoIiIiXEQrIiIiLnRvUmVnZXgoKSwgIiIpLnJlcGxhY2UoZmluZFJlZ2V4LnRvUmVnZXgoKSwgewogICAgCWl0Lmdyb3VwVmFsdWVzWzFdLnRvU3RyaW5nKCkgKyAKICAgIAkgIChpZiAoIWl0Lmdyb3VwVmFsdWVzWzJdLmlzTnVsbE9yRW1wdHkoKSkgIi4ke2l0Lmdyb3VwVmFsdWVzWzJdLnRvU3RyaW5nKCl9IiAgZWxzZSAiIikgKyAKICAgIAkgIChpZiAoIWl0Lmdyb3VwVmFsdWVzWzNdLmlzTnVsbE9yRW1wdHkoKSkgIi4ke2l0Lmdyb3VwVmFsdWVzWzNdLnRvU3RyaW5nKCl9IiAgZWxzZSAiIikgKyAKICAgIAkgIChpZiAoIWl0Lmdyb3VwVmFsdWVzWzRdLmlzTnVsbE9yRW1wdHkoKSkgIi0ke2l0Lmdyb3VwVmFsdWVzWzRdLnRvU3RyaW5nKCl9IiAgZWxzZSAiIikKICAgIH0pCiAKZnVuIG1haW4oYXJnczogQXJyYXk8U3RyaW5nPikgewogICAgdmFsIGlucHV0ID0gIjAxMTIxMjEyMzQiIC8vIDAxMS4yMTIuMTIzLTQKICAgIC8vIHZhbCBpbnB1dCA9ICIwMTEiIC8vICAwMTEKICAgIC8vIHZhbCBpbnB1dCA9ICIwMTEyMTIxMiIgLy8gMDExLjIxMi4xMgogICAgLy8gdmFsIGlucHV0ID0gIjAxMTIxMiIgLy8gMDExLjIxMgogICAgLy8gdmFsIGlucHV0ID0gIjAxMTIxIiAvLyAgMDExLjIxCiAgICAvLyB2YWwgaW5wdXQgPSAiMDExMiIgLy8gIDAxMS4yCiAgICB2YWwgZmluZFJlZ2V4ID0gIiIiXihcZHszfSkoXGR7MSwzfSk/KFxkezEsM30pPyhcZHsxLDJ9KT8kIiIiCiAgICB2YWwgcmVwbGFjZVJlZ2V4ID0gIiIiJDEuJDIuJDMtJDQiIiIKICAgIHZhbCByZXN1bHQgPSB0cmFuc2Zvcm1hdGlvbihpbnB1dCwgZmluZFJlZ2V4LCByZXBsYWNlUmVnZXgpCiAgICBwcmludGxuKHJlc3VsdCkKfQo=