我们正在使用String的replaceAll方法,并且不能在任何字符串中替换{。 我们的例子:
尝试过:
"some { string".replaceAll("{", "other string");
错误如下:
java.util.regex.PatternSyntaxException:发生非法重复
欢迎任何想法!也许有解决方法?!
答案 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)