我有这样的文字:
"fullName":"\"Some full name\"" .
如何将""
替换为"
?我试过这样:
text.replace("\"\"","\"");
但我得到"fullName":"\"Some full name\"
。如您所见,只有第二个""
已被"
替换。
答案 0 :(得分:4)
您应首先将\"
替换为"
,然后将""
替换为"
。
您可以通过链接一些String#replaceAll()
来电来完成:
text = text.replaceAll("\\\"","\"").replaceAll("\"\"", "\"");
System.out.println(text);
将产生
"fullName":"Some full name"
答案 1 :(得分:1)
您可以通过匹配\""
或"\"
:
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"