import java.util.*
fun main(args: Array<String>) {
val text = "This is a %s with %02d whatever"
val rx = """%(\d*[a-z])""".toRegex()
println(text.replace(rx, "<$1/>")) // "This is a <s/> with <02d/> whatever"
println(rx.replace(text) { "<${it.groupValues[1].toUpperCase()}>" })
println(rx.replace(text) { it.groupValues[1].toUpperCase() })
}
aW1wb3J0IGphdmEudXRpbC4qCiAKZnVuIG1haW4oYXJnczogQXJyYXk8U3RyaW5nPikgewogICAgIHZhbCB0ZXh0ID0gIlRoaXMgaXMgYSAlcyB3aXRoICUwMmQgd2hhdGV2ZXIiCiAgICB2YWwgcnggPSAiIiIlKFxkKlthLXpdKSIiIi50b1JlZ2V4KCkKICAgIHByaW50bG4odGV4dC5yZXBsYWNlKHJ4LCAiPCQxLz4iKSkgLy8gIlRoaXMgaXMgYSA8cy8+IHdpdGggPDAyZC8+IHdoYXRldmVyIgogICAgcHJpbnRsbihyeC5yZXBsYWNlKHRleHQpIHsgIjwke2l0Lmdyb3VwVmFsdWVzWzFdLnRvVXBwZXJDYXNlKCl9PiIgfSkKICAgIHByaW50bG4ocngucmVwbGFjZSh0ZXh0KSB7IGl0Lmdyb3VwVmFsdWVzWzFdLnRvVXBwZXJDYXNlKCkgfSkKfQ==