gpt4 book ai didi

java - Json、正则表达式、java。如何替换仅出现一次的子字符串

转载 作者:行者123 更新时间:2023-12-01 21:41:53 28 4
gpt4 key购买 nike

假设我们有这样的字符串

 {"className":"first","i":0,"name":null}

如何将其转换为:

 {"className":"second","i":0,"name":null}

我有这个:

///Initialy className is a className in lower Case (for example "first")
className = "\"className\":\""+className+"\",";

string.replaceAll( "\"className\":\".+\"" ,className);

但它给出了:

  {"className":"second",:null}

最佳答案

您的正则表达式中有 ".+"+ 是一个“贪婪”量词,这意味着 .+ 将匹配最大可能的字符数。因此匹配器将一直查找它所能找到的最远的引号。相反,如果您想要匹配最小可能的字符数,请在量词后面添加 ?,即

string.replaceAll( "\"className\":\".+?\"" ,className); 

在 Java 中,这称为“不情愿”限定符。 (我也见过它有其他名字。)

我同意正则表达式不是解决此问题的最佳方法的评论。

关于java - Json、正则表达式、java。如何替换仅出现一次的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36349139/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com