3 回答
TA贡献1824条经验 获得超8个赞
考虑重新设计您的表结构,使其更适合存储键值对。
但是您可以使用积极的前瞻:只有在有另一个即将到来的情况下才需要拆分,并且在此之前:不能有任何拆分。,这导致类似:
,(?=[^,]*?:)
Java代码:
String s = "pricevalue : One,and more ,pricevalue : two,something else : abc , def";
String[] ss = s.split(",(?=[^,]*?:)");
for(String si : ss) {
System.out.println(si);
}
https://ideone.com/v66rTO
输出:
pricevalue : One,and more
pricevalue : two
something else : abc , def
TA贡献2011条经验 获得超2个赞
您可能希望使用String#split带有前瞻的正则表达式pricevalue
正则表达式:,(?=pricevalue)
Java 中的示例
String str = "pricevalue : One,and more ,pricevalue : two";
String[] splitted = str.split(",(?=pricevalue)");
for (String s : splitted) {
System.out.println(s);
}
印刷
pricevalue : One,and more
pricevalue : two
TA贡献1802条经验 获得超10个赞
这是你可以做的。
1)使用此代码'something.split("pricevalue :")'
这将返回三个元素。
2)忽略第一个元素。
3) 对于所有不是最后一个元素的元素,去掉字符串末尾的逗号。
你会得到这个。
1> pricevalue : One,and more 2> pricevalue : two
添加回答
举报