java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。
正则表达式(regular expression)是根据字符串集合内每个字符串共享的共同特性来描述字符串集合的一种途径。
java.util.regex包主要由三部分构成:Pattern、Matcher和PatternSyntax- Exception。
Pattern对象是正则表达式编译后的表达形式(我理解为:通过正则表达式生成的字符串规则);
Matcher对象是解释模式和对输入字符串执行匹配操作的引擎(我理解为:对字符串的校验);
PatternSyntaxException对象是不可控异常,它指出正则表达式模式中的语法错误。
实例:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestRegex {
public static void main (String[] args){
Pattern pattern = Pattern.compile("[a-z]{3}");
Matcher matcher = pattern.matcher("aa1");
Matcher matcher1 = pattern.matcher("aaz");
System.out.println(matcher.matches());
System.out.println(matcher1.matches());
//另一种方式
String phone = "18545025201";
//手机号码第一位是1第二位允许是3 5 7 8 然后跟着9位数字
System.out.println(phone.matches("1[3857][0-9]{9}"));
}
}
输出结果:
false
true
true
Pattern类没有提供公共构造器。为了创建模式,首先必须调用它的一个public static compile方法,这样会返回一个Pattern对象;
Matcher通过调用Pattern对象的matcher方法获得Matcher对象。
PS:
字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)