我正在喂一个看起来像这样的字符串:
"lang":"fr","fizz":"1","buzz":"Thank you so much."
实际的字符串很长,但是遵循这种以逗号分隔的
"key":"value"
对的模式。我想去除key
周围的所有双引号,并且我想用单引号替换所有value
周围的双引号,以便我的字符串如下所示:lang:'fr',fizz:'1',buzz:'Thank you so much.'
我最好的尝试:
kvString = kvString.replaceAll("\"*\":", "*:");
kvString = kvString.replaceAll(":\"*\"", ":'*'");
System.out.println(kvString);
当我运行它时,我得到
kvString
看起来像:"lang*:'*'fr","fizz*:'*1","buzz*:'*Thank you so much."
有人可以发现我要去哪里错吗?提前致谢。
最佳答案
String str = "\"lang\":\"fr\",\"fizz\":\"1\",\"buzz\":\"Thank you so much.\"";
System.out.println(str.replaceAll ("\"([^\"]*)\":\"([^\"]*)\"", "$1:'$2'"));