Yes, Java provides a way to do that. First you have to call one of the standard methods to apply the regex, like matches()
or find()
. If that returns false
, you can use the hitEnd()
method to find out if some longer string could have matched:
String[] inputs = { "AA", "BB" };
Pattern p = Pattern.compile("AAAAAB");
Matcher m = p.matcher("");
for (String s : inputs)
{
m.reset(s);
System.out.printf("%s -- full match: %B; partial match: %B%n",
s, m.matches(), m.hitEnd());
}
output:
AA -- full match: FALSE; partial match: TRUE
BB -- full match: FALSE; partial match: FALSE
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…