繁体   English   中英

如何在Java中用转义符替换双引号?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM