Java正则表达式未评估

时间:2016-02-04 09:22:55

标签: java regex

我有一个经常更改的字符串,格式为:

*** START OF THIS PROJECT FILENAME ***

其中FILENAME可以是不同实例中的多个单词。我试过运行正则表达式:

Pattern.matches("\\*\\*\\* START OF THIS PROJECT ", line);

其中line等于一个这样的字符串。 我也尝试使用Matcher,其中beginningOfFilePatter也设置为上面的相同正则表达式模式:

Matcher beginFileAccelerator;
beginFileAccelerator = beginningOfFilePattern.matcher(line);
if (beginFileAccelerator.find() 
//Do Something

我非常好地尝试了至少30种不同的正则表达式组合,我根本找不到解决方案。如果有人能借我一眼,我会非常感激。

1 个答案:

答案 0 :(得分:2)

Pattern.matches尝试将整个字符串与模式进行匹配,因为它使用了Matcher#matches,其中包含:{/ p>

  

尝试将整个区域与模式匹配。

在您的情况下,最终会失败,因为输入不会以"PROJECT "结尾。之后还有更多。

要在最后添加任何内容,请添加.*

Pattern.matches("\\*\\*\\* START OF THIS PROJECT .*", line)
// Here -----------------------------------------^

Live Example