如何在Java中替换花括号?

9

当我尝试在Java中替换正则表达式时,出现了错误。

例如:

String h = "{hiren:}";

h=h.replaceAll(":}", ":\"\"}");

请给我一个解决方案。谢谢。

2
如果您要替换的是一个字面字符串,请使用.replace()而不是.replaceAll()。请注意,尽管它的名称如此,但此方法确实替换其参数的所有出现。 - fge
1个回答

19

您需要在Pattern中双重转义某些特殊字符。

String#replaceAll接受正则表达式,因此:

String h = "{hiren:}"; h=h.replaceAll(":\\}", ":\"\"}");
否则,您可以使用String#replace,无需正则表达式或转义。
String h = "{hiren:}"; h=h.replace(":}", ":\"\"}");

普遍错误的看法是认为String#replace不会替换所有出现的字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接