在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"