【问题标题】:Regex to get value from JSON field正则表达式从 JSON 字段中获取值
【发布时间】:2026-02-16 05:20:03
【问题描述】:

考虑到下面的json,我需要从grand_total 获取值text。我实现的最接近的正则表达式是:

"grand_total":(.*?)\}
{
    "data": [{
        "grand_total": {
            "digital": "4:41",
            "hours": 4,
            "minutes": 41,
            "text": "4 hrs 41 mins",
            "total_seconds": 16880.662732
        }
    }],
    "end": "2019-09-04T02:59:59Z",
    "start": "2019-09-03T03:00:00Z"
}

【问题讨论】:

  • 为什么不使用 JSON 解析器?
  • 如果你真的想要一个正则表达式:"text": "(.+?)(?=") 只要没有其他名为 text 的属性就可以工作。
  • 我无法使用第三方库来解析 json。我简化了 json,还有其他 text 属性。

标签: regex curl


【解决方案1】:

s 模式下,类似于以下的表达式可能会提取所需的值,

"grand_total":\s*{.*?"text"\s*:\s*"([^"]*)"

您可以使用$1 调用它。


如果您想探索/简化/修改表达式,它已经 在右上角的面板上进行了解释 regex101.com。如果你愿意,你 也可以在this link看,怎么搭配 针对一些样本输入。


【讨论】: