Module ij
Package ij.util

Class WildcardMatch

java.lang.Object
ij.util.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

    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 Details

  • Method Details

    • 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'.