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

时间:2010-02-22 21:59:31

标签: java regex

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

==Text==

我正在尝试匹配开头,使用:

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

然而,这会为每一行返回false ...很少帮助?

7 个答案:

答案 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()方法匹配行的子字符串