Module ij
Package ij.util

Class WildcardMatch


  • public class WildcardMatch
    extends java.lang.Object
    This class allows for simple wildcard pattern matching. Possible patterns allow to match single characters ('?') or any count of characters ('*').

    Wildcard characters can be escaped (default: by an '\').

    This class always matches for the whole word.

    Examples:

     WildcardMatch wm = new WildcardMatch();
     System.out.println(wm.match("CfgOptions.class", "C*.class"));    // true
     System.out.println(wm.match("CfgOptions.class", "?gOpti*c?as?"));  // false
     System.out.println(wm.match("CfgOptions.class", "??gOpti*c?ass")); // true
     System.out.println(wm.match("What's this?",       "What*\\?"));          // true
     System.out.println(wm.match("What's this?",       "What*?"));            // true
     System.out.println(wm.match("A \\ backslash", "*\\\\?back*"));   // true
     
    • Constructor Summary

      Constructors 
      Constructor Description
      WildcardMatch()  
      WildcardMatch​(char singleChar, char multipleChars)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean getCaseSensitive()
      Returns the current state of case sensitivity.
      char getEscapeChar()
      Returns the character used to escape the wildcard functionality of a wildcard character.
      char getMultipleWildcardChar()
      Returns the character used to specify any amount of characters.
      char getSingleWildcardChar()
      Returns the character used to specify exactly one character.
      boolean match​(java.lang.String s, java.lang.String pattern)
      Matches a string against a pattern with wildcards.
      void setCaseSensitive​(boolean caseSensitive)
      Makes pattern matching case insensitive.
      void setEscapeChar​(char escapeChar)
      Sets the new character to be used as an escape character, overriding the the default of '\'.
      void setWildcardChars​(char singleChar, char multipleChars)
      Sets new characters to be used as wildcard characters, overriding the the default of '?' for any single character match and '*' for any amount of characters, including 0 characters.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • WildcardMatch

        public WildcardMatch()
      • WildcardMatch

        public WildcardMatch​(char singleChar,
                             char multipleChars)
    • Method Detail

      • setWildcardChars

        public void setWildcardChars​(char singleChar,
                                     char multipleChars)
        Sets new characters to be used as wildcard characters, overriding the the default of '?' for any single character match and '*' for any amount of characters, including 0 characters.
        Parameters:
        singleChar - The char used to match exactly ONE character.
        multipleChars - The char used to match any amount of characters including o characters.
      • setEscapeChar

        public void setEscapeChar​(char escapeChar)
        Sets the new character to be used as an escape character, overriding the the default of '\'.
        Parameters:
        escapeChar - The char used to match escape wildcard characters.
      • getSingleWildcardChar

        public char getSingleWildcardChar()
        Returns the character used to specify exactly one character.
        Returns:
        Wildcard character matching any single character.
      • getMultipleWildcardChar

        public char getMultipleWildcardChar()
        Returns the character used to specify any amount of characters.
        Returns:
        Wildcard character matching any count of characters.
      • getEscapeChar

        public char getEscapeChar()
        Returns the character used to escape the wildcard functionality of a wildcard character. If two escape characters are used in sequence, they mean the escape character itself. It defaults to '\'.
        Returns:
        Escape character.
      • setCaseSensitive

        public void setCaseSensitive​(boolean caseSensitive)
        Makes pattern matching case insensitive.
        Parameters:
        caseSensitive - false for case insensitivity. Default is case sensitive match.
      • getCaseSensitive

        public boolean getCaseSensitive()
        Returns the current state of case sensitivity.
        Returns:
        true for case sensitive pattern matching, false otherwise.
      • match

        public boolean match​(java.lang.String s,
                             java.lang.String pattern)
        Matches a string against a pattern with wildcards. Two wildcard types are supported: single character match (defaults to '?') and ANY character match ('*'), matching any count of characters including 0. Wildcard characters may be escaped by an escape character, which defaults to '\'.
        Parameters:
        s - The string, in which the search should be performed.
        pattern - The search pattern string including wildcards.
        Returns:
        true, if string 's' matches 'pattern'.