/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.java.rule.regex; import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * A simple helper class to regroup a bunch of method generally used by rules * using regex. * * @author Romain PELISSE, belaran@gmail.com * */ public final class RegexHelper { /** * Default private empty constructors */ private RegexHelper() { } /** * Compiles a list of regex into a list of patterns. * * @param list * the regex list * @return the pattern list */ public static List<Pattern> compilePatternsFromList(List<String> list) { List<Pattern> patterns; if (list != null && !list.isEmpty()) { patterns = new ArrayList<>(list.size()); for (String stringPattern : list) { if (stringPattern != null && !"".equals(stringPattern)) { patterns.add(Pattern.compile(stringPattern)); } } } else { patterns = new ArrayList<>(0); } return patterns; } /** * Simple commodity method (also designed to increase readability of source * code, and to decrease import in the calling class). Provide a pattern and * a subject, it'll do the proper matching. * * @param pattern * a compiled regex pattern * @param subject * a String to match * @return {@code true} if there is a match; {@code false} otherwise */ public static boolean isMatch(Pattern pattern, String subject) { if (subject != null && !"".equals(subject)) { Matcher matcher = pattern.matcher(subject); if (matcher.find()) { return true; } } return false; } }