我想在JSON字符串中替换点和单个撇号字符,即仅在引用时。使用此输入:
String json = "{\"someJsonMap\":{\"with.dot.s\":1.0,\"'with.dots'.and.apostroph's.\":20.001}}";
我想转此:
{"someJsonMap":{"with.dot.s":1.0,"with.dots'.and.apostroph's":20.001}}
进入这个:
{"someJsonMap":{"withdots":1.0,"withdotsandapostrophs":20.001}}
我感谢任何帮助,解决方案或解释。
答案 0 :(得分:2)
如果从未有过转义引号,那么您可以使用前面的奇数引号。奇数表示您在引号内。
json = json.replaceAll("['.](?=(([^\"]*\"){2})*[^\"]*\"[^\"]*$)", "");
正则表达式的列车残骸断言,在引用*
对的倍数(0-n通过([^\"]*\"){2}
)之后引用了奇数引号,剩余的字符只有一句[^\"]*\"[^\"]*$
如果是转义引号,您基本上无法使用正则表达式。