fork download
  1. import java.util.*
  2.  
  3. fun main(args: Array<String>) {
  4. val string = "field1:1234,field2:[[1, 3],[3,4]], field3:[[1, 3],[3,4]]"
  5. val rx = """\w+:(?:(?=\[)(?:(?=.*?\[(?!.*?\1)(.*\](?!.*\2).*))(?=.*?\](?!.*?\2)(.*)).)+?.*?(?=\1)[^\[]*(?=\2$)|\w+)""".toRegex()
  6. print( rx.findAll(string).map{it.value}.joinToString("\n") )
  7. }
Success #stdin #stdout 0.13s 40636KB
stdin
Standard input is empty
stdout
field1:1234
field2:[[1, 3],[3,4]]
field3:[[1, 3],[3,4]]