Java Regex中的声明差异?

时间:2017-12-16 06:12:36

标签: java regex

Pattern p = Pattern.compile(".s"); 
Matcher m = p.matcher("as");  
boolean b = m.matches(); 
  

boolean b3 = Pattern.matches(".s", "as"); 

我想知道这两个声明有什么区别?

> mathches()是Matcher类方法怎样才能调用它?

2 个答案:

答案 0 :(得分:3)

查看Pattern.matches的实现:

public static boolean matches(String var0, CharSequence var1) {
    Pattern var2 = compile(var0);
    Matcher var3 = var2.matcher(var1);
    return var3.matches();
}

并且您看到后者只是更详细的第一个片段的便捷方法。

答案 1 :(得分:3)

matches()static类中的Pattern方法,它在matches()中调用Matcher方法。这是来源code

public static boolean matches(String regex, CharSequence input) {
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(input);
        return m.matches();
    }