java - 如何替换字符串中的括号

标签 java string design-patterns

我有一个包含标记的字符串列表。
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/

相关文章:

c# - 异步编程设计模式

java - 字符串的正则表达式包含不在特定集合中的字符

java - 为什么 Boolean 包装类实现 Serialized 接口(interface)和 Comparable 接口(interface)?它有什么用呢?

python - 替换字符串的各个字符元素

c# - 我们应该在 C++ 中使用装饰器模式吗?

go - 如何在函数级别而不是 GoLang 平台中进行元编程或条件编译?

java - 文本到xml文件

java - 在 Eclipse 插件中查找 IProject 中的所有注释

swift - 在 "if"语句中使用字符串进行比较不起作用 (SWIFT)

php - 如何替换不在链接标记内的字符串?