在助手类中,我从日志文件中提取密钥字符串。我在那里搜索日期和该文本的子字符串。问题是当im包括使用java date的date包含短语而硬编码的im以不同的方式起作用时。
代码段:
BufferedReader br = new BufferedReader(new FileReader("/developer.log"));
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
line = br.readLine();
}
String second = sb.toString();
String pattern = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
String date = "]"+simpleDateFormat.format(new Date());
Matcher m2 = Pattern.compile("^(.*)date(.*)$").matcher(second);
if (m2.find()) {
String keyPrefix = "Bearer ";
key = keyPrefix + m2.group(1);
}
}
br.close();
return key;
date
变量不返回模式匹配,但是当我将字符串硬编码为]2019-03-01
时,它可以工作。这可能是什么问题?预先感谢。
答案 0 :(得分:5)
您匹配固定的格式“日期”。
要与创建的日期字符串匹配,您必须将匹配器创建为:
Matcher m2 = Pattern.compile("^(.*)"+date+"(.*)$").matcher(second);