我有一些示例文本
# HELP aaasd asdads
# TYPE ASDA dasdas
goodmetric_total{"camel-1"} 777.0
# HELP qqq www
# TYPE eee rrr
badmetric_total{"camel-1"} 888.0
我需要從特定字串中獲取數字。使用 String.format,我將替換我需要的值。例如goodmetric_total.
如何撰寫正則運算式以僅獲取數值?目前,我有先搜索字串的解決方案。
^goodmetric. \d
并且已經在這一行中尋找數字。
我認為您可以在一次操作中完成所有這些操作。謝謝!
uj5u.com熱心網友回復:
您可以使用正則運算式方法
(?m)^goodmetric.*\h(\d )(?:\.0 )?$
請參閱正則運算式演示。詳情:
(?m)^- 一行的開始goodmetric- 一個字串.*- 除換行符以外的任何零個或多個字符,盡可能多\h- 水平空白(\d )- 第一組:一位或多位數字(?:\.0 )?- a.和一個或多個0字符的可選序列$- 行尾(由于(?m)修飾符 =Pattern.MULTILINE)。
請參閱Java 演示:
String s = "# HELP aaasd asdads\n# TYPE ASDA dasdas\ngoodmetric_total{\"camel-1\"} 777.0\n# HELP qqq www\n# TYPE eee rrr\nbadmetric_total{\"camel-1\"} 888.0";
Pattern pattern = Pattern.compile("^goodmetric.*\\h(\\d )(?:\\.0 )?$", Pattern.MULTILINE);
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println(matcher.group(1));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408155.html
標籤:
上一篇:以預定義格式顯示十進制值
