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

时间:2019-03-01 06:46:02

标签: java matcher java-date

在助手类中,我从日志文件中提取密钥字符串。我在那里搜索日期和该文本的子字符串。问题是当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时,它可以工作。这可能是什么问题?预先感谢。

1 个答案:

答案 0 :(得分:5)

您匹配固定的格式“日期”。

要与创建的日期字符串匹配,您必须将匹配器创建为:

Matcher m2 = Pattern.compile("^(.*)"+date+"(.*)$").matcher(second);