Java 正则表达式中match()和find()之间的区别?
matches尝试将表达式与整个字符串匹配,^并$在模式的开头和结尾隐式添加 ,这意味着它将不查找子字符串。因此,此代码的输出:
matches
^
$
public static void main(String[] args) throws ParseException { Pattern p = Pattern.compile("\\d\\d\\d"); Matcher m = p.matcher("a123b"); System.out.println(m.find()); System.out.println(m.matches()); p = Pattern.compile("^\\d\\d\\d$"); m = p.matcher("123"); System.out.println(m.find()); System.out.println(m.matches()); } /* 输出: true false true true */
123是的子字符串,a123b因此该find()方法输出true。matches()仅“看到” a123b与“不相同” 123,因此输出false。
123
a123b
find()
true
matches()
false