Java无法用replaceAll方法替换“ {”

时间:2018-08-06 11:51:06

标签: java string methods replaceall

我们正在使用String的replaceAll方法,并且不能在任何字符串中替换{。 我们的例子:

尝试过:

"some { string".replaceAll("{", "other string");

错误如下:

  

java.util.regex.PatternSyntaxException:发生非法重复

欢迎任何想法!也许有解决方法?!

7 个答案:

答案 0 :(得分:7)

使用replaceAll需要regular expression (regex)

尝试使用replace方法而不是replaceAll

"some { string".replace("{", "other string");

或使用\\

在正则表达式中转义特殊字符
"some { string".replaceAll("\\{", "other string");

答案 1 :(得分:4)

像这样replace()尝试

"some { string".replace("{", "other string");

或以以下正则表达式格式使用replaceAll

"some { string".replaceAll("\\{", "your string to replace");

注意:对于replace(),第一个参数是字符序列,但是对于replaceAll,第一个参数是正则表达式

答案 2 :(得分:2)

您需要转义{,因为它在regex中具有特殊含义。使用:

String s = "some { string".replaceAll("\\{", "other string");

答案 3 :(得分:1)

您必须使用转义字符\\

"some { string".replaceAll("\\{", "other string");

字符{在正则表达式中保留,这就是为什么必须转义以匹配文字的原因。另外,您可以使用replace仅考虑CharSequence,而不考虑正则表达式。

答案 4 :(得分:1)

您需要转义字符“ {”。

尝试一下:

"some { string".replaceAll("\\{", "other string");

答案 5 :(得分:1)

{是正则表达式引擎的指示符,您即将开始一个重复指示符,例如{2,4},表示“是先前标记的2到4倍”。

但是{f是非法的,因为必须在其后加上数字,因此会引发异常。

您可以执行以下操作

"some { string".replaceAll("\\{", "other string");

答案 6 :(得分:0)

  1. 替换: “ xxx” .replace(“ {”,“ xxx”)
  2. replaceAll: “ xxx” .replace(“ \ {”,“ xxx”)

Difference between String replace() and replaceAll()