【问题标题】:regex to match json entry正则表达式匹配 json 条目
【发布时间】:2022-08-17 20:18:33
【问题描述】:

我想选择“对象”的所有元素。

{
    \"name\": \"alice\",
    \"age\": 20,
    \"object\": {
        \"key1\": \"value1\",
        \"key2\": \"value2\",
        \"array\": [
            { \"array_key1\": \"array_value1\" },
            { \"array_key2\": \"array_value2\" }
        ],
        \"key3\": \"value3\"
    }
}

像这样

\"object\": {
    \"key1\": \"value1\",
    \"key2\": \"value2\",
    \"array\": [
        { \"array_key1\": \"array_value1\" },
        { \"array_key2\": \"array_value2\" }
    ],
    \"key3\": \"value3\"
}

我使用这个正则表达式(?i)\"(object)\"\\s*:\\s*\\{([^\\}]+) 但这个结果如下

object\": {
    \"key1\": \"value1\",
    \"key2\": \"value2\",
    \"array\": [
        { \"array_key1\": \"array_value1\" 

https://regex101.com/r/Lruvos/1

如何让他们选择该元素的最后一个括号?

如果我能提供帮助,我将不胜感激。谢谢

  • 正则表达式和 JSON 不是很好的匹配。是什么让您相信正则表达式是合适的工具?您使用什么编程语言或工具来提取它?
  • { } 是嵌套的 - 正则表达式找不到匹配的 }
  • 我想我找到了一种方法,你有更复杂的 json 示例来测试吗? regex101.com/r/l1S7Gt/1
  • @btafarelo 似乎没有像 OP 描述的那样选择唯一的 \"object\" 属性。

标签: regex


【解决方案1】:
"object":.*?"array": \[.*?],?.*?}

.*? > 这种模式使点不贪婪,它在下一个模式停止。我更改了提供的示例,它可以处理我能想到的所有变化。

https://regex101.com/r/LGQZFq/1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多