gpt4 book ai didi

java - 使用正则表达式匹配文本行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:40:14 24 4
gpt4 key购买 nike

我有这样的行:

36600.10: [Host #255] utilization is 0.00%
36600.10: [Host #256] utilization is 21.64%
36600.10: [Host #257] utilization is 3.29%
36600.10: [Host #258] utilization is 0.94%
36600.10: [Host #260] utilization is 3.76%
36600.10: [Host #260] utilization is 1.21%
36600.10: [Host #260] utilization is 86.09%
36600.10: [Host #260] utilization is 7.32%

我需要在 utilization is 之后获取所有数字。我想要的是这样的数组:

myArray[0] => 0.00,
myArray[1] => 21.64,
myArray[2] => 3.29,
myArray[3] => 0.94,
myArray[4] => 3.76,
myArray[5] => 1.21,
myArray[6] => 7.32

到目前为止我尝试了什么(它只适用于第一行):

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class main {

public static void main(String[] args) {
String lines = "36600.10: [Host #256] utilization is 21.65% \n 36600.10: [Host #256] utilization is 91.78% \n 36600.10: [Host #256] utilization is 3.29%";
String pattern = "(utilization is\\s)(\\d+\\.\\d*)(.*)";

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(lines);
if (m.find( )) {
System.out.println(m.group(2));
} else {
System.out.println("NO MATCH");
}

}

}

抱歉,我是 Java 的新手,尝试了一些模式但没有帮助。任何帮助将不胜感激。

最佳答案

使用 While 循环。 If 语句将限制与第一次出现的匹配(正在​​发生)

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class main {

public static void main(String[] args) {
String lines = "36600.10: [Host #256] utilization is 21.65% \n 36600.10: [Host #256] utilization is 91.78% \n 36600.10: [Host #256] utilization is 3.29%";
String pattern = "(utilization is\\s)(\\d+\\.\\d*)(.*)";

Pattern r = Pattern.compile(pattern);

Matcher m = r.matcher(lines);
while (m.find()) {
System.out.println(m.group(2));
}
}

}

关于java - 使用正则表达式匹配文本行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34555642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com