在没有 \K 的 java 正则表达式中替换分隔符内的字符串

我有一个看起来像这样的 JSON:

{"firstName":"Gabriela","id":9153,"language":"en","lastName":"Manriquez","login":"gmanriquez_training","profileCodes":"[role1","role2","role3","role4","role5 ]","status":"A","statusName":"Active"}

我想从 [ 分隔符内部提取 ",这是预期的结果:

{"firstName":"Gabriela","id":9153,"language":"en","lastName":"Manriquez","login":"gmanriquez_training","profileCodes":"[role1,role2,role3,role4,role5]","status":"A","statusName":"Active"}

我试过这个正则表达式:

(?i)(?:\G(?!\A)|profileCodes\"\:\s*\")[^\]"]*\K\"

但是 \K 在我想要实现它的引擎中不受支持,因为该标志不适用于 java。

有没有办法在不使用 \K 的情况下获得相同的结果?


慕的地10843
浏览 124回答 1
1回答

繁星点点滴滴

\K如果您使用捕获组,则不需要:(\[|\G(?!\A))([^]"]*)" &nbsp;^^^^^^^^^^^&nbsp;&nbsp;^^^^^^ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$2并替换为$1$2.在此处查看现场演示您还可以使用后视代替上面的第一个捕获组:(?<=\[|\G(?!\A))([^]"]*)"并将其替换为$1.在此处查看现场演示
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java