File: MatcherGroupCount.java

package info (click to toggle)
checker-framework-java 3.2.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 22,840 kB
  • sloc: java: 145,910; xml: 839; sh: 518; makefile: 401; perl: 26
file content (51 lines) | stat: -rw-r--r-- 1,729 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
// Test case for Issue 291
// https://github.com/typetools/checker-framework/issues/291

import java.util.regex.*;
import org.checkerframework.checker.regex.RegexUtil;

public class MatcherGroupCount {
    public static void main(String[] args) {
        String regex = args[0];
        String content = args[1];

        if (!RegexUtil.isRegex(regex)) {
            System.out.println(
                    "Error parsing regex \""
                            + regex
                            + "\": "
                            + RegexUtil.regexException(regex).getMessage());
            System.exit(1);
        }

        Pattern pat = Pattern.compile(regex);
        Matcher mat = pat.matcher(content);

        if (mat.matches()) {
            if (mat.groupCount() > 0) {
                System.out.println("Group: " + mat.group(1));
            } else {
                System.out.println("No group found!");
            }
            if (mat.groupCount() >= 2) {
                System.out.println("Group: " + mat.group(2));
            }
            if (mat.groupCount() >= 2) {
                // :: error: (group.count.invalid)
                System.out.println("Group: " + mat.group(3));
            }
            if (2 < mat.groupCount()) {
                System.out.println("Group: " + mat.group(3));
            }
            if (!(mat.groupCount() > 4)) {
                System.out.println("Group: " + mat.group(0));
            } else {
                System.out.println("Group: " + mat.group(5));
                // :: error: (group.count.invalid)
                System.out.println("Group: " + mat.group(6));
            }
        } else {
            System.out.println("No match!");
        }
    }
}