我执行了以下代码:
public static void test() {
Pattern p = Pattern.compile("BIP[0-9]{4}E");
Matcher m = p.matcher("BIP1111EgjgjgjhgjhgjgjgjgjhgjBIP1234EfghfhfghfghfghBIP5555E");
System.out.println(m.matches());
while(m.find()) {
System.out.println(m.group());
}
我无法解释的是,当代码使用System.out.println(m.matches());执行时,打印出的匹配结果是:BIP1234E和BIP5555E。但是当从代码中删除System.out.println(m.matches());后,匹配结果BIP1111E也被打印出来了。
有人能解释一下这是如何可能的吗?非常感谢您的帮助。
matches
,则会打印出最后两个匹配项。 - khachik