为什么我的正则表达式不匹配?

我在文本文件中有一些这样的行:

==Text== 

我试图匹配开始,使用这个:

 line.matches("^==[^=]") 

但是,这会为每一行返回false …一点帮助?

matches自动锚定正则表达式,因此正则表达式必须匹配整个字符串。 尝试:

 line.matches("==[^=].*") 

我记得,方法matches()只搜索完全匹配。

你也可以使用String.startsWith("=="); 如果它是简单的东西。

尝试使用line.matches("^==(.+?)==\\s*$")

 try line.matches("^==[^=]*==$") 

.matches仅在整行匹配时才返回true。 在你的情况下,该行必须以’==’开头,并且只包含一个不等于的字符。 如果您希望匹配整行的字符串:

line.matches( “== [^ =] * ==”)

如果我没记错的话,只有整行与正则表达式matches时, matches才会返回true。 在你的情况下,它不会。 要使用matches您需要扩展正则表达式(使用通配符)以匹配行的结尾。 或者,您可以使用Matcher.find()方法匹配行的子字符串