[英]How can i replace double quotes with escape character in java?
我有这样的文字:
"fullName":"\"Some full name\"" .
我怎么能用"
? ""
代替""
?”我这样尝试:
text.replace("\"\"","\"");
但是我得到了"fullName":"\\"Some full name\\"
。如您所见,只有第二个""
被替换为"
。
您应该先将\\"
替换为"
,然后再将""
替换为""
"
。
您可以通过链接几个String#replaceAll()
调用来实现:
text = text.replaceAll("\\\"","\"").replaceAll("\"\"", "\"");
System.out.println(text);
会产生
"fullName":"Some full name"
您可以通过匹配\\""
或"\\"
来做到这一点:
str = str.replaceAll("\\\\\"\"|\"\\\\\"", "\"");
这使用交替 (通过|
)。 所有这些反斜杠的丑陋都是由于Java 和正则表达式都要求转义反斜杠(在Java中, "\\\\"
是文字反斜杠,因此"\\\\\\\\"
是正则表达式中的文字反斜杠)。
一些测试代码:
String str = "\"fullName\":\"\\\"Some full name\\\"\"";
System.out.println(str); // just to make sure
System.out.println(str.replaceAll("\\\\\"\"|\"\\\\\"", "\""));
输出:
"fullName":"\"Some full name\""
"fullName":"Some full name"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.