Java自带了支持正则表达式的包---java.util.regex包
在regex包中,包括了两个类,Pattern(模式类)和Matcher(匹配器类),另外还有个异常类PatternSyntaxException。
Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真正影响搜索的对象。PatternSyntaxException,当遇到不合法的搜索模式时,会抛出例外。抛出未经检查的异常,表明正则表达式模式中的语法错误。
指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象,依照正则表达式,该对象可以与任意字
符序列匹配。执行匹配所涉及的所有状态都驻留在匹配器中,所以多个匹配器可以共享同一模式。 因此,典型的调用顺序是
Pattern p = Pattern.compile("a*b"); // 编译 指定模式 Matcher m1 = p.matcher("aaaaab"); // 创建 Matcher匹配器 对象 Matcher m2 = p.matcher("aaab"); // 多个匹配器共享同一模式 boolean b = m1.matches();
类 Matcher
通过调用模式的 matcher 方法从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:
matches 方法尝试将整个输入序列与该模式匹配。
lookingAt 尝试将输入序列从头开始与该模式匹配。
find 方法扫描输入序列以查找与该模式匹配的下一个子序列。
public class Test { public static void main(String[] args) { // 编译 指定模式 Pattern p = Pattern.compile("a*b"); // 创建 Matcher匹配器对象 Matcher m1 = p.matcher("aaaaab"); // 多个匹配器共享同一模式 Matcher m2 = p.matcher("vaavbcc"); Matcher m3 = p.matcher("baabbcvv"); boolean b1 = m1.matches(); boolean b2 = m2.find(); boolean b3 = m3.lookingAt(); System.out.println("全部匹配"+b1); System.out.println("有符合条件的就行"+b2); System.out.println("从头开始匹配"+b3); } }
软件包 java.util.regex 的描述
用于匹配字符序列与正则表达式指定模式的类。
Pattern 类的实例采用类似于 Perl 的语法来表示以字符串形式指定的正则表达式。
Matcher 类的实例用于匹配字符序列与给定模式。通过 CharSequence 接口将输入提供给匹配器,以支持从多种输入源到字符的匹配。
除非另行说明,将 null 参数传递给此包中任意类或接口中的方法将导致抛出 NullPointerException