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

Gee*_*ene 0 java matcher java-date

在我的帮助器类中,我从日志文件中提取键字符串.在那里我搜索一个日期和子串的文本.问题是当我包括该日期包括使用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;
Run Code Online (Sandbox Code Playgroud)

date变量不会返回模式匹配,但是当我对字符串进行硬编码时]2019-03-01它会起作用.这可能是什么问题?提前致谢.

Tho*_*ger 5

您匹配固定模式"日期".

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

Matcher m2 = Pattern.compile("^(.*)"+date+"(.*)$").matcher(second);
Run Code Online (Sandbox Code Playgroud)