java中的Pattern和Matcher类有哪些,它们有何区别?
我的第二个问题是,您能否清楚地解释以下验证码?
Pattern p = Pattern.compile("^[a-zA-Z][a-zA-Z\\s]+$");
Pattern pattern = Pattern.compile("\\d{10}");
答案 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