正则表达式剥离字符串的开始和结束

Regex stripping start and end of string

我有一个 OpenTSDB 查询,我想从中提取指标。查询的格式为 (x:)<METRIC_NAME>{<OPTIONS>}

示例查询是 15-min-sum:rate:proc.stat.cpu{host=foo,type=idle}

我想提取 proc.stat.cpu 部分。

Here's what I have so far. 如何在同一个正则表达式中捕获字符串的末尾?

来自 ^(\w\W*)*:(.*){(.*)}$ 的第 2 组和第 3 组将分别捕获 proc.stat.cpu 和选项。

如果您的查询字符串将采用完全相同的格式,这可能有效。

str = "15-min-sum:rate:proc.stat.cpu{host=foo,type=idle}"
print(str[str.rfind(":")+1 : str.find("{")])
https://regex101.com/r/4aIVLr/4

15-min-sum:rate:proc.stat.cpu{host=foo,type=idle}

(?![\w-]*:)([\w\.]*)({.*})
creates two group 

proc.stat.cpu

{host=foo,type=idle}