Java Matcher.matches()匹配整个字符串

Matcher.matches()对整个字符串进行匹配,只有整个字符串都匹配了才返回true。

定义

public static boolean matches(String regex,  CharSequence input)

编译给定正则表达式并尝试将给定输入与其匹配。

方法

Pattern.matches(regex, input);
Pattern.compile(regex).matcher(input).matches(); 

参数:
regex - 要编译的表达式
input - 要匹配的字符序列  
抛出:  
PatternSyntaxException - 如果表达式的语法无效

例子

实例一

Pattern p = Pattern.compile(expression); // 正则表达式 
Matcher m = p.matcher(str); // 操作的字符串 
boolean b = m.matches(); //返回是否匹配的结果 
System.out.println(b); 

实例二

Pattern p=Pattern.compile("\\d+"); 
Matcher m=p.matcher("22bb23"); 
m.matches();//返回false,因为bb不能被\d+匹配,导致整个字符串匹配未成功. 
Matcher m2=p.matcher("2223"); 
m2.matches();//返回true,因为\d+匹配到了整个字符串

总结

1. Pattern.matcher(String regex,CharSequence input),它与下面这段代码等价 Pattern.compile(regex).matcher(input).matches()

2. matches是整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回False。但如果前部分匹配成功,将移动下次匹配的位置。