我必须更换"用\"在java中,我试过
String.replaceall(" \""" \\\"&#34)
但它有效吗
提前致谢
答案 0 :(得分:4)
假设您需要文字\
,那么您需要在正则表达式中将其转义(棘手的部分是\
本身就是转义字符)。你可以做点什么,
String msg = "\"Hello\"";
System.out.println(msg);
msg = msg.replaceAll("\"", "\\\\\"");
System.out.println(msg);
输出(表示更改"
s)
"Hello"
\"Hello\"
答案 1 :(得分:2)
根据javadoc,replaceAll
执行正则表达式匹配。这意味着第一个参数被视为正则表达式,第二个参数也有一些具有特殊含义的字符。请参阅javadoc。
"
字符在正则表达式中并不特殊,因此您无需对其执行任何操作。但对于替换表达式,反斜杠是特殊的。如果您有替换字符串并且您不希望任何字符被视为特殊字符,则最简单的方法是使用Matcher.quoteReplacement
:
s.replaceAll("\"",Matcher.quoteReplacement("\\\""))
另请注意,这根本不会修改s
。 replaceAll
返回字符串,您必须将其分配给某些内容(可能是s
,也许是其他内容)。 (我不知道你是否犯了这个错误,但它在StackOverflow上非常常见。)