Java 拆分逗号分隔的字符串,但忽略整个单词中的逗号

Java 拆分逗号分隔的字符串,但忽略整个单词中的逗号,java,regex,string,Java,Regex,String,我有一个字符串,比如: String test = "firstName:a,lastName:b,addressOne:line 1,line 2,city:other"; 我在试着做test.replaceAll,,\,\,我的意思是用,。我只想为整个弦做这个。例如addressOne是一个逗号分隔的字符串,我不想替换它。有没有什么正则表达式或其他方法可以让我这么做? 我应该得到一根像这样的绳子 "firstName":"a","lastName":"b","addressOne":"li

我有一个字符串,比如:

String test = "firstName:a,lastName:b,addressOne:line 1,line 2,city:other";
我在试着做test.replaceAll,,\,\,我的意思是用,。我只想为整个弦做这个。例如addressOne是一个逗号分隔的字符串,我不想替换它。有没有什么正则表达式或其他方法可以让我这么做? 我应该得到一根像这样的绳子

"firstName":"a","lastName":"b","addressOne":"line 1 , line 2","city":"other"
after replace , but i am getting 
"firstName":"a","lastName":"b","addressOne":"line 1 "," line 2","city":"other".

您可以使用逗号拆分字符串,逗号后面跟一个单词,该单词后面跟:。为了达到这个目的,您可以使用And来匹配前导词,使用一个否定字符类[^:,]+,它将匹配除:和之外的任何字符串:


这是一个有效的Java语句吗?不知道你在期待什么。。串还是列表还是汉堡?第一行没有意义。请重写。还有,这是JSON吗?我们理解这个概念,只是你没有把球带到足够远的地方。没有回答任何问题。至少,我们可能会期待后者。
test.split(",(?=[^:,]+:)")