替换引号之间的一些特殊字符
Replacing some special characters between quotes
我想替换 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}}
感谢任何帮助、解决方案或解释。
如果从来没有转义过的引号,那么您可以先行查看后面的奇数 个引号。奇数表示您在引号内。
json = json.replaceAll("['.](?=(([^\"]*\"){2})*[^\"]*\"[^\"]*$)", "");
正则表达式的残骸断言有奇数个引号,然后消耗了引号对的倍数(通过 *
为 0-n)([^\"]*\"){2}
,其余字符只有一个引号[^\"]*\"[^\"]*$
如果有个转义引号,基本上就不能用正则了。
我想替换 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}}
感谢任何帮助、解决方案或解释。
如果从来没有转义过的引号,那么您可以先行查看后面的奇数 个引号。奇数表示您在引号内。
json = json.replaceAll("['.](?=(([^\"]*\"){2})*[^\"]*\"[^\"]*$)", "");
正则表达式的残骸断言有奇数个引号,然后消耗了引号对的倍数(通过 *
为 0-n)([^\"]*\"){2}
,其余字符只有一个引号[^\"]*\"[^\"]*$
如果有个转义引号,基本上就不能用正则了。