我在文本文件中有一些这样的行:
==Text==
我正在尝试匹配开头,使用:
line.matches("^==[^=]")
然而,这会为每一行返回false ...很少帮助?
答案 0 :(得分:7)
我记得,方法matches()
仅搜索完全匹配。
答案 1 :(得分:4)
matches
自动锚定正则表达式,因此正则表达式必须匹配整个字符串。尝试:
line.matches("==[^=].*")
答案 2 :(得分:1)
如果简单,也可以使用String.startsWith("==");
。
答案 3 :(得分:0)
try line.matches("^==[^=]*==$")
答案 4 :(得分:0)
尝试使用line.matches("^==(.+?)==\\s*$")
答案 5 :(得分:0)
.matches仅在整行匹配时才返回true。在你的情况下,该行必须以'=='开头,并且只包含一个不等于的字符。如果您希望匹配整行的字符串:
line.matches( “== [^ =] * ==”)
答案 6 :(得分:0)
如果我没记错的话,matches
只有在整行与正则表达式匹配时才会返回true。在你的情况下,它不会。要使用matches
,您需要扩展正则表达式(使用通配符)以匹配行尾。或者,您可以使用Matcher.find()
方法匹配行的子字符串