public final class GlobCompiler extends java.lang.Object implements PatternCompiler
Because there are various similar glob expression syntaxes, GlobCompiler
tries to provide a small amount of customization by providing the
STAR_CANNOT_MATCH_NULL_MASK
and QUESTION_MATCHES_ZERO_OR_ONE_MASK
compilation options.
The GlobCompiler expression syntax is based on Unix shell glob expressions but should be usable to simulate Win32 wildcards. The following syntax is supported:
Please remember that the when you construct a Java string in Java code, the backslash character is itself a special Java character, and it must be double backslashed to represent single backslash in a regular expression.
PatternCompiler
,
Perl5Matcher
Modifier and Type | Field and Description |
---|---|
static int |
CASE_INSENSITIVE_MASK
A mask passed as an option to the
compile methods
to indicate a compiled glob expression should be case insensitive. |
static int |
DEFAULT_MASK
The default mask for the
compile methods. |
static int |
QUESTION_MATCHES_ZERO_OR_ONE_MASK
A mask passed as an option to the
compile methods
to indicate that a ? should not be allowed to match the null string. |
static int |
READ_ONLY_MASK
A mask passed as an option to the
compile methods
to indicate that the resulting Perl5Pattern should be treated as a
read only data structure by Perl5Matcher, making it safe to share
a single Perl5Pattern instance among multiple threads without needing
synchronization. |
static int |
STAR_CANNOT_MATCH_NULL_MASK
A mask passed as an option to the
compile methods
to indicate that a * should not be allowed to match the null string. |
Constructor and Description |
---|
GlobCompiler()
The default GlobCompiler constructor.
|
Modifier and Type | Method and Description |
---|---|
Pattern |
compile(char[] pattern)
Same as calling compile(pattern, GlobCompiler.DEFAULT_MASK);
|
Pattern |
compile(char[] pattern,
int options)
Compiles a Glob expression into a Perl5Pattern instance that
can be used by a Perl5Matcher object to perform pattern matching.
|
Pattern |
compile(java.lang.String pattern)
Same as calling compile(pattern, GlobCompiler.DEFAULT_MASK);
|
Pattern |
compile(java.lang.String pattern,
int options)
Compiles a Glob expression into a Perl5Pattern instance that
can be used by a Perl5Matcher object to perform pattern matching.
|
static java.lang.String |
globToPerl5(char[] pattern,
int options)
This static method is the basic engine of the Glob PatternCompiler
implementation.
|
public static final int DEFAULT_MASK
compile
methods.
It is equal to 0. The default behavior is for a glob expression to
be case sensitive unless it is compiled with the CASE_INSENSITIVE_MASK
option.public static final int CASE_INSENSITIVE_MASK
compile
methods
to indicate a compiled glob expression should be case insensitive.public static final int STAR_CANNOT_MATCH_NULL_MASK
compile
methods
to indicate that a * should not be allowed to match the null string.
The normal behavior of the * metacharacter is that it may match any
0 or more characters. This mask causes it to match 1 or more
characters of anything.public static final int QUESTION_MATCHES_ZERO_OR_ONE_MASK
compile
methods
to indicate that a ? should not be allowed to match the null string.
The normal behavior of the ? metacharacter is that it may match any 1
character. This mask causes it to match 0 or 1 characters.public static final int READ_ONLY_MASK
compile
methods
to indicate that the resulting Perl5Pattern should be treated as a
read only data structure by Perl5Matcher, making it safe to share
a single Perl5Pattern instance among multiple threads without needing
synchronization. Without this option, Perl5Matcher reserves the right
to store heuristic or other information in Perl5Pattern that might
accelerate future matches. When you use this option, Perl5Matcher will
not store or modify any information in a Perl5Pattern. Use this option
when you want to share a Perl5Pattern instance among multiple threads
using different Perl5Matcher instances.public GlobCompiler()
public static java.lang.String globToPerl5(char[] pattern, int options)
pattern
- A character array representation of a Glob pattern.public Pattern compile(char[] pattern, int options) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A Glob expression to compile.options
- A set of flags giving the compiler instructions on
how to treat the glob expression. The flags
are a logical OR of any number of the 3 MASK
constants. For example:
regex = compiler.compile(pattern, GlobCompiler. CASE_INSENSITIVE_MASK | GlobCompiler.STAR_CANNOT_MATCH_NULL_MASK);This says to compile the pattern so that * cannot match the null string and to perform matches in a case insensitive manner.
MalformedPatternException
- If the compiled expression
is not a valid Glob expression.public Pattern compile(char[] pattern) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A regular expression to compile.MalformedPatternException
- If the compiled expression
is not a valid Glob expression.public Pattern compile(java.lang.String pattern) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A regular expression to compile.MalformedPatternException
- If the compiled expression
is not a valid Glob expression.public Pattern compile(java.lang.String pattern, int options) throws MalformedPatternException
compile
in interface PatternCompiler
pattern
- A Glob expression to compile.options
- A set of flags giving the compiler instructions on
how to treat the glob expression. The flags
are a logical OR of any number of the 3 MASK
constants. For example:
regex = compiler.compile("*.*", GlobCompiler. CASE_INSENSITIVE_MASK | GlobCompiler.STAR_CANNOT_MATCH_NULL_MASK);This says to compile the pattern so that * cannot match the null string and to perform matches in a case insensitive manner.
MalformedPatternException
- If the compiled expression
is not a valid Glob expression.Copyright ? 2000-2003 Apache Software Foundation. All Rights Reserved.