我有一个看起来像这样的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来获得相同的结果?
答案 0 :(得分:0)
如果要使用捕获组,则不需要\K
:
(\[|\G(?!\A))([^]"]*)"
^^^^^^^^^^^ ^^^^^^
$1 $2
并替换为$1$2
。
您也可以在后面的第一个捕获组中使用后退标记:
(?<=\[|\G(?!\A))([^]"]*)"
并仅用$1
代替。