[英]How to get integers from a specific string using regexp?
我有一些示例文本
# 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+
並且已經在這一行中尋找數字。
我認為您可以在一次操作中完成所有這些操作。 謝謝!
您可以使用正則表達式方法
(?m)^goodmetric.*\h(\d+)(?:\.0+)?$
請參閱正則表達式演示。 詳情:
(?m)^
- 行首goodmetric
- 一個字符串.*
- 除換行符以外的任何零個或多個字符,盡可能多\h
- 水平空白(\d+)
- 第 1 組:一位或多位數字(?:\.0+)?
- 的可選序列.
和一個或多個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));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.