Grafana正则表达式忽略星号作为标签中的第一个字符

问题描述 投票:2回答:1

我有Grafana 5.2仪表板从Prometheus采购数据。

我在仪表板中有一些标签,似乎是*.<domain>的格式,例如*.google.com e.t.c然而,如果没有一些聪明的正则表达式忽略前两个字符,这不会与Grafana一起使用。

我有以下正则表达式(?<=^\*\.|^)[-a-zA-Z0-9._ ]+,它似乎在格拉法纳不起作用,但在regex101工作。它应该导致标签为google.com,即没有前两个字符*.

Without regex

With regex

有人可以让我知道是什么原因引起的吗?

regex grafana prometheus
1个回答
1
投票

根据Grafana documentation,您可以捕获正则表达式的一部分以返回该子字符串:

使用正则表达式捕获组过滤和修改选项以返回部分文本:正则表达式:

/.*(01|02)/

结果:

01
02

因此,您可以使用

^(?:\*\.)?([-a-zA-Z0-9._ ]+)
          ^                ^

regex demo

这里,

  • ^ - 字符串的开头
  • (?:\*\.)? - 一个可选的(由于?量词匹配1或0序列)non-capturing group匹配*.子串(1或0次)
  • ([-a-zA-Z0-9._ ]+) - 匹配1 + ASCII字母,数字,capturing group-.和space的_,并将其匹配值放入Group 1中,并在Grafana中作为匹配结果返回。
© www.soinside.com 2019 - 2024. All rights reserved.