Java Regex中的声明差异? [重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

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

和:

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

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

> mathches()是Matcher类的方法怎么能用Pattern调用呢?

java regex
2个回答
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();
    }

3
投票

看看Pattern.matches的实现:

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

你会发现后者只是一个更简洁的第一个片段的便捷方法。

© www.soinside.com 2019 - 2024. All rights reserved.