fork download
  1. import java.util.*
  2.  
  3. fun transformation(input: String, findRegex: String, replaceRegex: String): String =
  4. input.replace("""\D+""".toRegex(), "").replace(findRegex.toRegex(), {
  5. it.groupValues[1].toString() +
  6. (if (!it.groupValues[2].isNullOrEmpty()) ".${it.groupValues[2].toString()}" else "") +
  7. (if (!it.groupValues[3].isNullOrEmpty()) ".${it.groupValues[3].toString()}" else "") +
  8. (if (!it.groupValues[4].isNullOrEmpty()) "-${it.groupValues[4].toString()}" else "")
  9. })
  10.  
  11. fun main(args: Array<String>) {
  12. val input = "0112121234" // 011.212.123-4
  13. // val input = "011" // 011
  14. // val input = "01121212" // 011.212.12
  15. // val input = "011212" // 011.212
  16. // val input = "01121" // 011.21
  17. // val input = "0112" // 011.2
  18. val findRegex = """^(\d{3})(\d{1,3})?(\d{1,3})?(\d{1,2})?$"""
  19. val replaceRegex = """$1.$2.$3-$4"""
  20. val result = transformation(input, findRegex, replaceRegex)
  21. println(result)
  22. }
  23.  
Success #stdin #stdout 0.12s 39884KB
stdin
Standard input is empty
stdout
011.212.123-4