Pattern类和Matcher类之间的区别

时间:2014-11-04 05:47:43

标签: java regex pattern-matching

java中的Pattern和Matcher类有哪些,它们有何区别?

我的第二个问题是,您能否清楚地解释以下验证码?

Pattern p = Pattern.compile("^[a-zA-Z][a-zA-Z\\s]+$");
Pattern pattern = Pattern.compile("\\d{10}");

2 个答案:

答案 0 :(得分:2)

  

Matcher - >通过调用,从模式创建匹配器   模式的匹配方法。匹配器将匹配要匹配的字符串的给定模式(用于创建它)。

     

Pattern - >正则表达式的编译表示。一个   必须首先编译指定为字符串的正则表达式   这个类的一个实例。

Pattern p = Pattern.compile("^[a-zA-Z][a-zA-Z\\s]+$"); 
// creates a regex pattern that can match a character followed by one or more characters or space
example : `ab` or `asa[space]` but not `a2` or `a` or `2`

Pattern pattern = Pattern.compile("\\d{10}");
// creates a regex pattern which can match exactly 10 digits
example : 1234567890

答案 1 :(得分:1)

只是为了澄清,Matcher类有一个构造函数。它是从Pattern类构造的。所以你总是首先需要一个Pattern对象。

但是一旦创建了Matcher对象,它就会成为你的" worker "。您通常会使用Matcher对象的方法,如 .find() .group()等。

查看Matcher类上的java文档。 http://docs.oracle.com/javase/7/docs/api/java/util/regex/Matcher.html