簡體   English   中英

如何使用正則表達式從特定字符串中獲取整數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM