当前位置: 首页 > 知识库问答 >
问题:

Java替换所有非法重复

姚永年
2023-03-14

我有一个大的json存储在一个字符串中。我想更改字符串的某些部分,但出现以下错误:

5/>(Pattern.java:3104)java.util.regex.Pattern.sequence(Pattern.java:2101)java.util.regex.Pattern.expr(Pattern.java:1964)java.util.regex.Pattern.compile(Pattern.java:1665)在java.util.regex.Pattern.(Pattern.java:1337)在java.util.regex.Pattern.compile(Pattern. java: 1022)在java. lang. String. replace eAll(String. java: 2162)在basari.流程. Msis dnProcess. setAllPropTypes(Msis dnProcess. java: 51)在testClass. Main Test. main(Main Test. java: 98)

我的代码:

String example =  "deviceInfo":{"deviceBrand":"NOKIA","imei":"11111111","deviceModel":"6300","date":{"nil":"true"}}

example.replaceAll( "\"date\":{\"nil\":\"true\"}", "\"date\":\"2014-08-14T10:00:00.000+02:00\"");

共有3个答案

钮长恨
2023-03-14

正如异常所示,它试图将其解析为正则表达式,而不是纯文本。如果只想用另一个字符串替换某个字符串,请使用replace()而不是replaceAll()

至于为什么会出现这种特殊的异常:{}字符有特定的含义,用于表示重复(又称:某个正则表达式出现的次数)。在实际的正则表达式中,这应该是一个整数值,而不是字符串中提供的整数值。

易骁
2023-03-14

在正则表达式中,{}符号是有意义的。

使用:

example.replaceAll( "\"date\":\\{\"nil\":\"true\"\\}",
        "\"date\":\"2014-08-14T10:00:00.000+02:00\""));
羊舌兴文
2023-03-14

您可能正在寻找String#replace,而不是replaceAll(使用regex)。

出现这种异常是因为在正则表达式中,{…}是一个量词。例如:

  • {1,3}=1到3次
  • {3,}=3次或更多次
  • {3}=正好3次
 类似资料:
  • 问题内容: 我试图写将接受的方法,检查是否有某些记号的情况下(例如,,等),并更换每个令牌与新的字符串,它是从获取。 例如,如果我将此方法传递给以下字符串: “现在的$ {fizz}母牛如何。$ {buzz}的形状奇怪的$ {foo}。” 并且如果该方法参考了以下内容: 那么结果字符串将是: “现在是棕色的母牛。纵火犯的脚怪异。” 这是我的方法: 运行此命令时,出现以下异常: 我为什么得到这个?

  • 我想创建一个新列,并用和替换和不丢失的值。 我想要的: 这就是我所尝试的: 看来第二行不正确。 有什么建议吗?

  • 请看下面的代码: 当我运行时,我得到以下异常: 线程“主”java.util.regex.PatternSyntaxException异常:指数4附近无与伦比的收盘“)” 0.3港元)预订:virginiawong@fahkco.com.hk4)FCR 根据我的理解,我必须对参数'(',')'进行转义,我试图这样做(看看代码中的注释部分)没有任何异常,但是我添加到字符串的换行符似乎没有出现。

  • 问题内容: 谁能告诉我为什么我运行这种方法用符号替换值时为什么会遇到bouns异常之外的索引? 例如,我传递消息 我试图查看此论坛主题,但无法理解内容 http://www.coderanch.com/t/383666/java/java/String- replaceAll 问题答案: 这是特殊字符,您需要使用转义字符 试试这个 而且在您的代码中您试图用相同的内容替换内容没有意义 输出 更新资料

  • 我是Java的新手,正在学习/尝试用流来理解系统。 在一个示例中,我有以下代码: 出于培训的目的,我开始用流重写一些旧方法(大多数是用for-loops)以获得更多的实践。但是这个小方法让我用javadocs(+Google)坚持了三次以上,我仍然不知道哪里出了问题--它甚至不能编译:/ 编辑(01.12.2020,10:13):我不得不编辑第一个代码段。返回语句错误(错别字……)