我有Grafana 5.2仪表板从Prometheus采购数据。
我在仪表板中有一些标签,似乎是*.<domain>
的格式,例如*.google.com
e.t.c然而,如果没有一些聪明的正则表达式忽略前两个字符,这不会与Grafana一起使用。
我有以下正则表达式(?<=^\*\.|^)[-a-zA-Z0-9._ ]+
,它似乎在格拉法纳不起作用,但在regex101工作。它应该导致标签为google.com
,即没有前两个字符*.
。
有人可以让我知道是什么原因引起的吗?
根据Grafana documentation,您可以捕获正则表达式的一部分以返回该子字符串:
使用正则表达式捕获组过滤和修改选项以返回部分文本:正则表达式:
/.*(01|02)/
结果:
01 02
因此,您可以使用
^(?:\*\.)?([-a-zA-Z0-9._ ]+)
^ ^
这里,
^
- 字符串的开头(?:\*\.)?
- 一个可选的(由于?
量词匹配1或0序列)non-capturing group匹配*.
子串(1或0次)([-a-zA-Z0-9._ ]+)
- 匹配1 + ASCII字母,数字,capturing group,-
,.
和space的_
,并将其匹配值放入Group 1中,并在Grafana中作为匹配结果返回。