请问怎么用java正则表达式提取以下文本中指定的内容?

20150819-00:00:01
avg-cpu: %user %nice %system %iowait %steal %idle
38.71 0.00 3.60 3.15 0.00 54.54

Device: wsec/s avgrq-sz avgqu-sz await svctm %util
sda 4110.60 68.36 0.38 5.40 4.62 32.65
sda1 0.00 18.83 0.00 10.20 8.92 0.00
sda2 3866.36 77.01 0.01 7.02 5.16 29.60

#Hard Utilization#
/ is already use: 72%
/boot is already use: 1%
/home is already use: 63%

#Memery Utilization#
system memery is already use: 75.18%
请问怎么从以上文本中读取%user想对应的数据,%util相对应的数据,use相对应的数据?其中%util和use的数据的规律是可以使用正则表达式提取最后一个结尾,但是%user的数据不知道怎么提取?

// 回答完毕,采纳即可

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Drinks
{
public static final String LINE = System.getProperty("line.separator");
    public static void main(String[] args)
    {
     try
{
     String result = "";
Scanner scanner =new Scanner(new File("data.txt"));
while(scanner.hasNextLine())
{
String line = scanner.nextLine();
result += line + LINE;
}
String userRegex = "[\\s\\S]*%user(\\s+%\\w+){5}[\r\n\\s]+([\\d\\.]+)\\s[\\s\\S]*";
System.out.println("%user想对应的数据: " + result.replaceAll(userRegex, "$2"));
String utilRegex = "sda.*\\s([\\d\\.]+)";
Pattern pattern = Pattern.compile(utilRegex);
Matcher matcher = pattern.matcher(result);
while(matcher.find())
{
System.out.println("%util相对应的数据: " + matcher.group(1));
}
String useRegex = "use:\\s*([\\d\\.%]+)";
pattern = Pattern.compile(useRegex);
matcher = pattern.matcher(result);
while(matcher.find())
{
System.out.println("use相对应的数据: " + matcher.group(1));
}
}
catch(FileNotFoundException e)
{
e.printStackTrace();
}
    }
}

温馨提示:内容为网友见解,仅供参考
无其他回答

java如何用正则表达式截取一段内容
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Ab { public static void main(String[] args) { Pattern p=Pattern.compile("\\\\d+");Matcher m=p.matcher("qw~~~12345~~~ee~~");while(m.find()){ System.out.println(m.group());} } } ...

请问怎么用java正则表达式提取以下文本中指定的内容
import java.util.regex.Matcher;import java.util.regex.Pattern;public class Test { public static void main(String[] args) { Pattern zj = Pattern.compile("地震震级为(.*?级)"); Pattern sd = Pattern.compile("震源深度(.*?米)"); Pattern fw = Pattern.compile("倒塌房...

java如何使用正则表达式提取以下字符串的数字
String s = "274750.4%1384136311-10 23:24";Pattern p = Pattern.compile("(?:)(.*?)(?:)");Matcher m = p.matcher(s);while(m.find()) {System.out.println(m.group(1));}

用Java正则表达式来获取一个字符串中<>里面的内容。
String s = "dsadsadas<peter>dsadasdas<lionel>\\"www.163.com\\"<kenny><>";Pattern p = Pattern.compile("(<[^>]*>)");Matcher m = p.matcher(s);List<String> result=new ArrayList<String>();while(m.find()){ result.add(m.group());} for(String s1:result){ System.out....

我想请问一下以下内容用JAVA正则表达式提取 之间的字符串的如何写...
try {Pattern regex = Pattern.compile("(.*?)");Matcher regexMatcher = regex.matcher(subjectString);if (regexMatcher.find()) {ResultString = regexMatcher.group(1);} } catch (PatternSyntaxException ex) {\/\/ Syntax error in the regular expression}subjectString是你的字符串 ...

java如何用正则表达式来提取一个TXT文档中的字段?我想要提取一个我下载...
试了一下正则,不是很好写。暂时还没有思路。现在用截取字符串的方法,实现的了想要的效果。你看一下吧。import java.util.ArrayList;import java.util.List;public class Test { public static void main(String[] args) { String value = "asdfasdkai8赞同1赞同2asdkfj2399";String startStr = ...

如何用java编程实现文本文档中某些有用信息的提取?
1. 读取指定文本文件对象。2. 利用过滤器可以把所需信息读取来即可。3. 把读出来的信息输出(持久化)即可。可参考以下代码 package tool;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;\/\/有序列出指定目录下所有...

使用JAVA从字符串中提取出符合要求的部分
这个当城市地址达到一定的量的时候用正则反而麻烦,推荐一款 public class ClassExample1 {public static void main(String args[]) {\/\/ 定义地址库List<String> cities = new ArrayList<String>();\/\/ 填充数据 ...cities.add("上海");cities.add("芜湖");\/\/ 待测数据String arg = "东华大学...

Java中怎样用正则表达式获取metal标签里content里的内容?
如果要用正则的话,String re = "content=[\\\\"']?([^\\\\"'>]+)[\\\\"']?";String str = ""+""+""+""; Pattern p = Pattern.compile(re);Matcher m = p.matcher(str);\/\/ Read the docs on how to use the matcher object ...

正则提取中间的内容?
正则表达式是一种文本模式匹配工具,可以用来提取文本中的指定信息。如果你想使用正则表达式来提取上面的文本中的【Default9】,可以使用下面的正则表达式:这个表达式会匹配文本中以 Dialogue: 开头,后面跟着任意字符,然后以一个逗号结尾的部分。它会提取括号中的内容,即【Default9】。例如,在使用 Python ...

相似回答