正则表达式使用代码片段

java.util.regex包 中,包括了两个类,Pattern(模式类)和Matcher(匹配器类)。Pattern类是用来表达和陈述所要搜索模式的对象,Matcher类是真 正影响搜索的对象。另加一个新的例外类,PatternSyntaxException,当遇到不合法的搜索模式时,会抛出例外。

Matcher extends Object implements MatchResult

 

通过解释 Patterncharacter sequence 执行匹配操作的引擎。

 

通过调用模式的 matcher 方法从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:

 

  • matches 方法尝试将整个输入序列与该模式匹配。

  • lookingAt 尝试将输入序列从头开始与该模式匹配。

  • find 方法扫描输入序列以查找与该模式匹配的下一个子序列。

 

每个方法都返回一个表示成功或失败的布尔值。通过查询匹配器的状态可以获取关于成功匹配的更多信息。

 

下面的一段代码实现的功能是,从一个文本文件逐行读入,并逐行搜索电话号码数字,一旦找到所匹配的,然后输出在控制台。

为简单起见,先构成一个正则表达式来识别下面格式的电话号码数字:(nnn)nnn-nnnn

BufferedReader in;
Pattern pattern = Pattern.compile("\\(\\d{3}\\)\\s\\d{3}-\\d{4}");
in = new BufferedReader(new FileReader("phone"));
String s;
while ((s = in.readLine()) != null)
{
    Matcher matcher = pattern.matcher(s);
    if (matcher.find())
    {
        System.out.println(matcher.group());
    }
}
in.close();

 

 

 

 

 

 

 

posted @ 2012-10-12 17:34  j-road  阅读(413)  评论(0编辑  收藏  举报