如何使用正则表达式检查 JSON 最后一个键的值是否以逗号结尾?

2024-10-02 12:27:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下JSON:

{
  "markers": [
    {
      "name": "Rixos The Palm Dubai",
      "position": [25.1212, 55.1535],
    },
    {
      "name": "Shangri-La Hotel",
      "description": "some description",
    },
    {
      "value": 123445,
    }
  ]
}

我正在尝试创建一个RegEx,它可以找到最后一个键或数组的值以,结尾的所有情况,并使用Python和re库删除它。在上面的JSON中,所有值都应该去掉逗号。你知道吗

我已经尝试过使用\,[^.]+\},这样它就可以找到以值,结尾的数组或对象,但是RegEx在找到另一个,{之后不会停止。Here's what I mean。你知道吗

现在,我知道我不应该使用RegEx来处理JSON,但这是一个非常特殊的情况,不会造成任何麻烦。你知道吗


Tags: thenamejson结尾情况position数组description
3条回答

你可以试试

\,(\s*)(?=\}|])

enter image description here

替换为\1

^{}

(?=^[^:\n]*:[^:\n]*$).*(,)(?=\s*[\}\]])$

这个regex使用一个正向的lookahead来断言在一行中,某处有一个:,它表示数据中存在一个键值对。非先行部分与行末尾的一个逗号匹配。最后一个lookahead断言下一行只包含空格和右括号或花括号。你知道吗

Demo

您可以改为使用正向先行模式,只匹配紧跟在,后面的}]之间带有可选空格的,

,(?=\s*[}\]])

演示:https://regex101.com/r/xnBTCg/3

相关问题 更多 >

    热门问题