为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕的地10843 2021-11-11 18:12:57
我有一个看起来像这样的 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 的情况下获得相同的结果?
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

\K如果您使用捕获组,则不需要:

(\[|\G(?!\A))([^]"]*)"
 ^^^^^^^^^^^  ^^^^^^
      $1        $2

并替换为$1$2.

在此处查看现场演示

您还可以使用后视代替上面的第一个捕获组:

(?<=\[|\G(?!\A))([^]"]*)"

并将其替换为$1.

在此处查看现场演示



查看完整回答
反对 回复 2021-11-11
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信