【发布时间】:2013-06-26 09:46:01
【问题描述】:
我正在使用 Nagiosgraph 尝试创建一个正则表达式来匹配来自 Nagios 插件的多行输出数据,但我无法让它输出超过第一个匹配项。我也尝试过使用和不使用 /g 修饰符以及许多其他人在其他讨论中发布的其他建议,但仍然没有得到任何结果。
我正在使用的数据格式为:
output:DISK: C - WARNING : Percent Used : 85.5% (WARN: 85% / CRIT: 95%), Total : 49.9 GiB, Used : 42.7 GiB, Free : 7.2 GiB
DISK: C(id: 1) - WARNING : Percent Used : 85.5% (WARN: 85% / CRIT: 95%), Total : 49.9 GiB, Used : 42.7 GiB, Free : 7.2 GiB
DISK: D(id: 2) - OK : Percent Used : 13.7% (WARN: 85% / CRIT: 95%), Total : 84.6 GiB, Used : 11.6 GiB, Free : 73 GiB
DISK: E(id: 3) - OK : Percent Used : 19.6% (WARN: 85% / CRIT: 95%), Total : 418.6 GiB, Used : 82.2 GiB, Free : 336.3 GiB
我使用的正则表达式是:
/.*?DISK: (\w)[(]id: [.0-9]+[)].*?Percent Used : ([.0-9]+%).*?/g
我想要的只是磁盘 ID 和用于具有“id”值的每一行的 %,但是当我运行生成的 var 时,它只匹配第一个实例(“1”和“85.5%”)。
我在这里遗漏了什么明显的东西吗?
【问题讨论】:
-
正则表达式看起来不错,这个问题可能与你如何使用它有关,例如你是如何得到线条的