首页 文章

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

提问于
浏览
2

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

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

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

Without regex

With regex

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

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._ ]+) - capturing group匹配1个ASCII字母,数字, -._ 和空格,并将其匹配的值放入组1中,并在匹配的结果中将其返回到Grafana中 .

相关问题