模式标记

另一可供选择的compile( )方法接受影响正则表达式的匹配行为的标记作为其参数:

 

PatternPattern.compile(String regex, int flag)

 

在这些标记中,特别有用的是 Pattern.CASE_INSENSITIVE、Pattern.MULTILINE和

Pattern.COMMENTS(有助于理清程序和文档管理)。注意大多数标记的行为也可以通过

向我们的正则表达式中(在我们所期望模式产生效用的位置之前)插入加括号的字符(见表

中标记下面的内容)来获得。

 

我们可以通过“OR” (‘|’)操作,将这些标记和其他标记相结合:

 

//:c12:ReFlags.java

importjava.util.regex.*;

importcom.bruceeckel.simpletest.*;

 

public classReFlags {

    private static Test monitor = new Test();

    public static void main(String[] args) {

    Pattern p = Pattern.compile("^java",

      Pattern.CASE_INSENSITIVE |Pattern.MULTILINE);

    Matcher m = p.matcher(

      "java has regex\nJava hasregex\n" +

            "JAVA has pretty good regularexpressions\n" +

      "Regular expressions are inJava");

    while(m.find())

      System.out.println(m.group());

monitor.expect(newString[] {

            "java",

            "Java",

            "JAVA"

        });

    }

} ///:~

 

这个程序创建了一个模式,可以匹配以 “java”、 “Java”、 “JAVA”等开始的行,它尝试着

为一个多行集里面的每一行进行匹配(匹配起始于字符序列的首部,结束于字符序列中每一

行的终结符)。注意group( )方法仅产生匹配部分。


你可能感兴趣的:(模式标记)