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

如何匹配特定字符串为捕获组,提取CLI输出多字段信息

解决CLI输出字段捕获问题

我已经帮你调整了正则表达式,现在可以一次性捕获所有你需要的字段,包括guarantee的值(file或none)。下面是修正后的正则:

Volume (\S+).*?state:(\S+).*?Raid(\d+).*?Flex(\S+).*?(root)?.*?guarantee=(\w+)

捕获组说明

每个捕获组对应你需要提取的字段,顺序如下:

  • 捕获组1:Volume的名称(比如vol0、data_vol)
  • 捕获组2:state的状态值(比如online、offline)
  • 捕获组3:Raid的数字标识(比如0、1)
  • 捕获组4:Flex的状态(比如on、off)
  • 捕获组5:root字段(如果存在则为root,不存在则返回空值)
  • 捕获组6:guarantee的具体值(仅提取=后面的file或none)

注意事项

  • 记得开启单行模式(DOTALL):如果你的CLI输出记录是跨多行的,这个模式能让.*?匹配换行符,确保整个记录被正确扫描。
  • 非贪婪匹配.*?:用来跳过所有不需要的中间内容,避免捕获到错误的字段。

举个测试例子,假设你的CLI记录是:

Volume data_vol state:online Raid1 Flexon guarantee=file

捕获结果会是:

  1. data_vol
  2. online
  3. 1
  4. on
  5. (空值,因为没有root字段)
  6. file

如果记录包含root:

Volume root_vol state:offline Raid0 Flexoff root guarantee=none

捕获结果:

  1. root_vol
  2. offline
  3. 0
  4. off
  5. root
  6. none

内容的提问来源于stack exchange,提问作者Antariksha Yelkawar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:37:46