执行的字符串值与硬编码值不匹配

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);