执行的字符串值与硬编码值不匹配
The executed string value does not match to the hard coded value
在我的助手 class 中,我正在从日志文件中提取关键字符串。我在那里搜索日期和该文本的子字符串。问题是当我使用 java 日期包含该日期包含短语时,硬编码的以不同的方式起作用。
代码片段:
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
变量不 return 模式匹配,但是当我将字符串硬编码为 ]2019-03-01
时它起作用了。这可能是什么问题?提前致谢。
您匹配固定模式 "date"。
要匹配创建的日期字符串,您必须将匹配器创建为:
Matcher m2 = Pattern.compile("^(.*)"+date+"(.*)$").matcher(second);
在我的助手 class 中,我正在从日志文件中提取关键字符串。我在那里搜索日期和该文本的子字符串。问题是当我使用 java 日期包含该日期包含短语时,硬编码的以不同的方式起作用。
代码片段:
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
变量不 return 模式匹配,但是当我将字符串硬编码为 ]2019-03-01
时它起作用了。这可能是什么问题?提前致谢。
您匹配固定模式 "date"。
要匹配创建的日期字符串,您必须将匹配器创建为:
Matcher m2 = Pattern.compile("^(.*)"+date+"(.*)$").matcher(second);