在日志文件中获取到数据:(格式如下)
11:10:36.072 [http-nio-8081-exec-10] INFO c.e.d.common.LoggerSearchInfo - admin search info is:key=code,value=11
使用正则表达式来获取到key、value的值
public class StringUtil {
public static void main(String[] args) {
//日志文件中的原始字符串
String line="11:10:36.072 [http-nio-8081-exec-10] INFO c.e.d.common.LoggerSearchInfo - admin search info is:key=code,value=11";
//需要获取值的对应字符串字段
String param1="key";
String param2="value";
//调用相应的函数获取相应字段的值
System.out.println("key="+getParamKey(line,param1));
System.out.println("value="+getParamValue(line,param2));
}
/**
* @param strContent 输入的字符串
* @param param 需要获取值的对应字符串字段
* @return 要获取的值
*/
public static String getParamKey(String strContent, String param) {
//Pattern.compile函数提取字符串中指定的字符
Pattern p = Pattern.compile("(\\:+)"+param+"=(\\w+)",Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(strContent);
String matcherStr = "";
while (m.find()) {
matcherStr = m.group(2);
}
return matcherStr;
}
/**
* @param strContent 输入的字符串
* @param param 需要获取值的对应字符串字段
* @return 要获取的值
*/
public static String getParamValue(String strContent, String param) {
//Pattern.compile函数提取字符串中指定的字符
Pattern p = Pattern.compile("(\\,+)" + param + "=([0-9]+)");
Matcher m = p.matcher(strContent);
String matcherStr = "";
while (m.find()) {
matcherStr = m.group(2);
}
return matcherStr;
}
}