正则表达式剥离字符串的开始和结束
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}
我有一个 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}