小编CdV*_*dVr的帖子

如何使用 re2 正则表达式否定字符串模式?

我使用 google re2正则表达式来查询Grafana 仪表板上的Prometheus 。尝试通过以下 3 种可能的输入字符串从 key 获取值

 1. object{one="ab-vwxc",two="value1",key="abcd-eest-ed-xyz-bnn",four="obsoleteValues"}
 2. object{one="ab-vwxc",two="value1",key="abcd-eest-xyz-bnn",four="obsoleteValues"}
 3. object{one="ab-vwxc",two="value1",key="abcd-eest-xyz-bnn-ed",four="obsoleteValues"}
Run Code Online (Sandbox Code Playgroud)

..经过下面列出的验证

  • 应包含abcd-
  • 不应该包含-ed

不知怎的,这个正则表达式

\bkey="(abcd(?:-\w+)*[^-][^e][^d]\w)"
Run Code Online (Sandbox Code Playgroud)

..满足第一个条件abcd-,但无法满足第二个条件(否定-ed)。

预期输出将来自abcd-eest-xyz-bnn第二个输入选项。任何帮助将非常感激。多谢。

regex re2 grafana prometheus

3
推荐指数
1
解决办法
4042
查看次数

标签 统计

grafana ×1

prometheus ×1

re2 ×1

regex ×1