weixin_39385771 2019-05-03 17:14 采纳率: 0%
浏览 500

Java:Pattern.MULTILINE属性

import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Test {
    private static String input = "";

    public static void test1() {
        String regex = "^(.|\\s)*$";
        Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        Matcher matcher = pattern.matcher(input);
        System.out.println("test1() begin");
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.printf("%d-%d\n", matcher.start(), matcher.end());
        }
        System.out.println("test1() end");
    }

    public static void test2() {
        String regex = "^(.|\\s)*$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        System.out.println("test2() begin");
        while (matcher.find()) {
            System.out.println(matcher.group());
            System.out.printf("%d-%d\n", matcher.start(), matcher.end());
        }
        System.out.println("test2() end");
    }

    public static void main(String[] args) {
        test1();
        test2();
    }
}

运行结果:为什么不一样?
test1() begin
test1() end
test2() begin

0-0
test2() end

  • 写回答

1条回答 默认 最新

  • hujiasuta 2019-05-03 18:11
    关注

    Pattern.MULTILINE允许多行匹配。没有它,遇到换行,就不继续往下匹配了。

    评论

报告相同问题?