class AbstractDetector implements Detector {

    protected final static String osName = System.getProperty("os.name").toLowerCase();

    protected List<String[]> matcher(Pattern pattern, String text) throws Exception {<FILL_FUNCTION_BODY>}
}

        List<String[]> infos = new ArrayList();
        if (Utils.isNotEmpty(text)) {
            String[] lines = text.trim().split("\\n");
            for (String line : lines) {
                Matcher matcher = pattern.matcher(line);
                while (matcher.find()) {
                    String[] info = new String[matcher.groupCount() + 1];

                    for (int i = 0; i <= matcher.groupCount(); ++i) {
                        info[i] = matcher.group(i).trim();
                    }
                    infos.add(info);
                }
            }
        }
        return infos;
    
<no_super_class>