Matcher.matcher()和Matcher.find()的区别
例1:
String abc = "abc";
Pattern pattern = Pattern.compile(abc);
Matcher matcher = pattern.matcher("abcd");
if (matcher.matches()) {
System.out.println("matcher.matches() == true");
} else {
System.out.println("matcher.matches() == false");
}
if (matcher.find()) {
System.out.println("matcher.find() == true");
} else {
System.out.println("matcher.find() == false");
}
运行结果:
matcher.matches() == false
matcher.find() == true
例2:
String abcd = "abcd";
Pattern pattern = Pattern.compile(abcd);
Matcher matcher = pattern.matcher("abcd");
if (matcher.matches()) {
System.out.println("matcher.matches() == true");
} else {
System.out.println("matcher.matches() == false");
}
if (matcher.find()) {
System.out.println("matcher.find() == true");
} else {
System.out.println("matcher.find() == false");
}
运行结果:
matcher.matches() == true
matcher.find() == false
总结:
当正则完全匹配字符串,从头到尾正好匹配上字符串,matches()方法是true,find()方法为false;
当正则只能匹配字符串中的部分内容,matches()方法是fasle ,find()方法是true;