【发布时间】:2014-06-18 04:55:34
【问题描述】:
我有一个字符串,其中: 出现了多次。我希望: 的每个出现都用双引号括起来,例如":",而不截断它周围的数据。
我尝试使用String.replaceAll(":", "\":\"");,但它会截断: 周围的字符。
如何在不截断: 周围的字符的情况下将所有出现的: 括在" 中?
编辑:-
我的字符串:-
{key1:value1,key2:value2,key3:{key4:value4,key5:value5,key6:{key7:{key8:value8}}},key9:value9}
更易读的表格:-
{
key1:value1,
key2:value2,
key3:{
key4:value4,
key5:value5,
key6:{
key7:{
key8:value8
}
}
},
key9:value9
}
我在做什么:-
responseString = responseString.replaceAll(":", "\":");// Put " before each occurance of :
responseString = responseString.replace(":[^\\Q{\\E]", ":\""); // Put " after each occurence of : except the ones preceded by {
输出:-
{key1":"alue1,key2":"alue2,key3":{key4":"alue4,key5":"alue5,key6":{key7":{key8":"alue8}}},key9":"alue9}
【问题讨论】:
-
but it truncates the characters around :这是什么意思?有什么例子吗? -
调用replaceAll没有错,你是在String类上调用它吗,它不是字符串类的静态方法,在其他字符串上调用它
-
[status-norepro] could not reproduce.
-
不是 DV'er,但您最初的问题并没有反映它已经演变成什么。因此问题无法重现,整体答案只是在黑暗中刺伤
-
顺便说一句,让您的 json 正确生成而不是尝试破解它不是更好吗?
标签: java regex string replace insert