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

在java中如何用转义字符替换双引号?,java,string,Java,String,我有这样的文本: "fullName":"\"Some full name\"" . 我如何用“”替换”?我试着这样做: text.replace("\"\"","\""); 但是我得到了“全名”:“一些全名”。正如您所看到的,只有第二个“被”替换为”您应该首先将\“替换为”,然后将“替换为” 您可以通过链接几个电话来实现: 那会产生什么 "fullName":"Some full name" 您可以通过匹配\”或“\”: 这使用了一种替代方法(通过|)。所有这些反斜杠之所以丑陋,是因为j

我有这样的文本:

"fullName":"\"Some full name\"" .
我如何用
”替换
?我试着这样做:

text.replace("\"\"","\"");

但是我得到了
“全名”:“一些全名”
。正如您所看到的,只有第二个
”替换为

您应该首先将
\“
替换为
,然后将
替换为

您可以通过链接几个电话来实现:

那会产生什么

"fullName":"Some full name"

您可以通过匹配
\”
“\”

这使用了一种替代方法(通过
|
)。所有这些反斜杠之所以丑陋,是因为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"

因为其他引用之间有东西?您的文本替换不考虑引号之间的文本。包含
“全名”:“某个全名”
的字符串与包含
“全名”:“某个全名”
的字符串之间存在差异。请确保解释斜杠。看起来您正在处理json数据。也许使用json解析器更好?@jtahlborn可以由Gson完成吗?当然可以。jackson、json.org、simplejson和其他任何数量的javajson库。
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"