我有以下字符串:
def str='prop1: value1, prop2: value2;value3, prop3:"test:1234, test1:23;45, test2:34;34", prop4: "test1:66;77, 888"'
我想要以下面的配对列表结束
prop1: value1
prop2: value2;value3
prop3: test:1234, test1:23;45, test4:34;34
prop4: test, 66;77, 888
我想,如果我可以首先解析并go 掉pros3和pros4,那么我就可以简单地在字符串的其余部分用逗号拆分.但是有一个问题,那就是能否找到匹配的4号props
以下是我到目前为止try 过的代码和正则表达式.在代码中注释掉了我try 过的各种正则表达式,但无法提取最后的prop4
def str='prop1: value1, prop2: value2;value3, prop3:"test:1234, test1:23;45, test4:34;34", prop4: "test, 66;77, 888"'
//def regex = /(\w+):"(.*)"[,\s$]/
//def regex = /(\w+):"(.*)"[,|\s|$]/
def regex = /(\w+):"(.*)"[,\s]|$/
def m = (str =~ regex)
(0..<m.count).each{
println("${m[it][1]}=${m[it][2]}")
}
这将返回:
prop3=test:1234, test1:23;45, test2:34;34
null=null
我错过了什么吗?
(还有,有没有办法只用一个正则表达式来解析所有这些,而不是我上面描述的方法.首先是正则表达式,然后拆分)