Class PatternWithGroups

  • Direct Known Subclasses:
    PathPattern

    public class PatternWithGroups
    extends java.lang.Object
    A pattern for matching a string against a regular expression and returning capturing group values for any capturing groups present in the expression.
    Author:
    Paul Sandoz, Gerard Davison (gerard.davison at oracle.com)
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static PatternWithGroups EMPTY
      The empty pattern that matches the null or empty string.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected PatternWithGroups()
      Construct an empty pattern.
        PatternWithGroups​(java.lang.String regex)
      Construct a new pattern.
        PatternWithGroups​(java.lang.String regex, int[] groupIndexes)
      Construct a new pattern.
        PatternWithGroups​(java.util.regex.Pattern regexPattern)
      Construct a new pattern.
        PatternWithGroups​(java.util.regex.Pattern regexPattern, int[] groupIndexes)
      Construct a new pattern.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)  
      int[] getGroupIndexes()
      Get the group indexes to capturing groups.
      java.lang.String getRegex()
      Get the regular expression.
      int hashCode()  
      java.util.regex.MatchResult match​(java.lang.CharSequence cs)
      Match against the pattern.
      boolean match​(java.lang.CharSequence cs, java.util.List<java.lang.String> groupValues)
      Match against the pattern.
      boolean match​(java.lang.CharSequence cs, java.util.List<java.lang.String> groupNames, java.util.Map<java.lang.String,​java.lang.String> groupValues)
      Match against the pattern.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • EMPTY

        public static final PatternWithGroups EMPTY
        The empty pattern that matches the null or empty string.
    • Constructor Detail

      • PatternWithGroups

        protected PatternWithGroups()
        Construct an empty pattern.
      • PatternWithGroups

        public PatternWithGroups​(java.lang.String regex)
                          throws java.util.regex.PatternSyntaxException
        Construct a new pattern.
        Parameters:
        regex - the regular expression. If the expression is null or an empty string then the pattern will only match a null or empty string.
        Throws:
        java.util.regex.PatternSyntaxException - if the regular expression could not be compiled.
      • PatternWithGroups

        public PatternWithGroups​(java.lang.String regex,
                                 int[] groupIndexes)
                          throws java.util.regex.PatternSyntaxException
        Construct a new pattern.
        Parameters:
        regex - the regular expression. If the expression is null or an empty string then the pattern will only match a null or empty string.
        groupIndexes - the array of group indexes to capturing groups.
        Throws:
        java.util.regex.PatternSyntaxException - if the regular expression could not be compiled.
      • PatternWithGroups

        public PatternWithGroups​(java.util.regex.Pattern regexPattern)
                          throws java.lang.IllegalArgumentException
        Construct a new pattern.
        Parameters:
        regexPattern - the regular expression pattern.
        Throws:
        java.lang.IllegalArgumentException - if the regexPattern is null.
      • PatternWithGroups

        public PatternWithGroups​(java.util.regex.Pattern regexPattern,
                                 int[] groupIndexes)
                          throws java.lang.IllegalArgumentException
        Construct a new pattern.
        Parameters:
        regexPattern - the regular expression pattern.
        groupIndexes - the array of group indexes to capturing groups.
        Throws:
        java.lang.IllegalArgumentException - if the regexPattern is null.
    • Method Detail

      • getRegex

        public final java.lang.String getRegex()
        Get the regular expression.
        Returns:
        the regular expression.
      • getGroupIndexes

        public final int[] getGroupIndexes()
        Get the group indexes to capturing groups.

        Any nested capturing groups will be ignored and the the group index will refer to the top-level capturing groups associated with the templates variables.

        Returns:
        the group indexes to capturing groups.
      • match

        public final java.util.regex.MatchResult match​(java.lang.CharSequence cs)
        Match against the pattern.
        Parameters:
        cs - the char sequence to match against the template.
        Returns:
        the match result, otherwise null if no match occurs.
      • match

        public final boolean match​(java.lang.CharSequence cs,
                                   java.util.List<java.lang.String> groupValues)
                            throws java.lang.IllegalArgumentException
        Match against the pattern.

        If a matched then the capturing group values (if any) will be added to a list passed in as parameter.

        Parameters:
        cs - the char sequence to match against the template.
        groupValues - the list to add the values of a pattern's capturing groups if matching is successful. The values are added in the same order as the pattern's capturing groups. The list is cleared before values are added.
        Returns:
        true if the char sequence matches the pattern, otherwise false.
        Throws:
        java.lang.IllegalArgumentException - if the group values is null.
      • match

        public final boolean match​(java.lang.CharSequence cs,
                                   java.util.List<java.lang.String> groupNames,
                                   java.util.Map<java.lang.String,​java.lang.String> groupValues)
                            throws java.lang.IllegalArgumentException
        Match against the pattern.

        If a matched then the capturing group values (if any) will be added to a list passed in as parameter.

        Parameters:
        cs - the char sequence to match against the template.
        groupNames - the list names associated with a pattern's capturing groups. The names MUST be in the same order as the pattern's capturing groups and the size MUST be equal to or less than the number of capturing groups.
        groupValues - the map to add the values of a pattern's capturing groups if matching is successful. A values is put into the map using the group name associated with the capturing group. The map is cleared before values are added.
        Returns:
        true if the matches the pattern, otherwise false.
        Throws:
        java.lang.IllegalArgumentException - if group values is null.
      • hashCode

        public final int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public final boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object