我有一个包含标记的字符串列表。
token 是:
{ARG:token_name}.
我还有 token 的 HashMap ,其中键是 token ,值是我想要替换 token 的值。
当我使用“replaceAll”方法时出现错误:
java.util.regex.PatternSyntaxException: Illegal repetition
我的代码是这样的:
myStr.replaceAll(valueFromHashMap , "X");
并且 valueFromHashMap 包含 { 和 }。
我将此 HashMap 作为参数。
最佳答案
String.replaceAll()
适用于正则表达式。 {n,m}
通常是正则表达式中的重复。
如果您想匹配文字括号,请尝试使用 \\{
和 \\}
。
因此,用 X
替换所有左括号就是这样:
myString.replaceAll("\\{", "X");
参见here了解正则表达式 (regexp) 以及为什么 {
和 }
是使用正则表达式时必须转义的特殊字符。
关于java - 如何替换字符串中的括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9279893/