You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Regex技术求助:如何提取"Alarms"字段后的数字值

解决正则提取JSON中Alarms字段数字的问题

嘿,作为正则新手碰到这种情况太正常啦!我来一步步帮你搞定~

首先,你当前用的正则("Alarms": )"*"\d{1,}"会匹配整个"Alarms": "13"串,要只提取后面的动态数字,有两种常用的正则方案:

方案1:使用捕获组

把你需要提取的数字部分用圆括号()包起来,这样就能单独捕获这部分内容了。调整后的正则是:

"Alarms": "(\d+)"
  • 解释:
    • "Alarms": ":精准匹配字段名和后面的引号前缀
    • (\d+):捕获一个或多个数字(这就是你要的动态值)
    • ":匹配数字后面的闭合引号
      使用的时候,你只需要取捕获组1的内容就能得到目标数字啦。

方案2:使用正向预查(直接匹配数字)

如果不想用捕获组,也可以用正向回顾断言,让正则直接匹配符合条件的数字:

(?<="Alarms": ")\d+
  • 解释:
    • (?<="Alarms": "):这是正向回顾断言,它会检查当前位置前面是"Alarms": ",但不会把这部分包含在最终匹配结果里
    • \d+:直接匹配一个或多个数字,也就是你要的目标值

额外提醒:处理JSON更推荐用解析器

虽然正则能解决问题,但JSON是结构化数据,用专门的JSON解析器会更可靠(比如空格变化、字段顺序调整都不会影响结果)。举个简单的Python例子:

import json
# 补全你提供的JSON字符串闭合大括号
json_content = '{ "NewMessages": "0", "NewAlarms": "0", "Alarms": "13", "PartialAlarms": "", "AckAlarms": "1", "UnusualSens": "" }'
data = json.loads(json_content)
alarms_value = data["Alarms"]
print(alarms_value)  # 输出:13

其他语言比如JavaScript、Java也都有内置的JSON解析工具,用它们处理结构化数据比正则更稳妥~

内容的提问来源于stack exchange,提问作者Samuel A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:05:51