为什么我的正则表达式不匹配?
我在文本文件中有一些这样的行:
==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()
方法匹配行的子字符串