java regex 简单使用

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

 

posted @ 2013-04-18 14:51  大都督  阅读(744)  评论(0编辑  收藏  举报