我有这样的行:
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));
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句