|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.oro.text.regex.Util
Untamed: The Util class is a holder for useful static utility methods that can be generically applied to Pattern and PatternMatcher instances. This class cannot and is not meant to be instantiated. The Util class currently contains versions of the split() and substitute() methods inspired by Perl's split function and s operation respectively, although they are implemented in such a way as not to rely on the Perl5 implementations of the OROMatcher packages regular expression interfaces. They may operate on any interface implementations conforming to the OROMatcher API specification for the PatternMatcher, Pattern, and MatchResult interfaces. Future versions of the class may include additional utility methods.
A grep method is not included for two reasons:
Pattern
,
PatternMatcher
Field Summary | |
static int |
SPLIT_ALL
Enabled: A constant passed to the split() methods
indicating that all occurrences of a pattern should be used to
split a string. |
static int |
SUBSTITUTE_ALL
Enabled: A constant passed to the substitute()
methods indicating that all occurrences of a pattern should be
substituted. |
Constructor Summary | |
private |
Util()
The default destructor for the Util class. |
Method Summary | |
static Vector |
split(PatternMatcher matcher,
Pattern pattern,
String input)
Enabled: Splits up a String instance into a Vector
of all its substrings using a regular expression as the delimiter. |
static Vector |
split(PatternMatcher matcher,
Pattern pattern,
String input,
int limit)
Enabled: Splits up a String instance into strings contained in a
Vector of size not greater than a specified limit. |
static String |
substitute(PatternMatcher matcher,
Pattern pattern,
Substitution sub,
String input)
Enabled: Searches a string for a pattern and substitutes only the first occurence of the pattern. |
static String |
substitute(PatternMatcher matcher,
Pattern pattern,
Substitution sub,
String input,
int numSubs)
Enabled: Searches a string for a pattern and replaces the first occurrences of the pattern with a Substitution up to the number of substitutions specified by the numSubs parameter. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
public static final int SUBSTITUTE_ALL
substitute()
methods indicating that all occurrences of a pattern should be
substituted.
public static final int SPLIT_ALL
split()
methods
indicating that all occurrences of a pattern should be used to
split a string.
Constructor Detail |
private Util()
Method Detail |
public static Vector split(PatternMatcher matcher, Pattern pattern, String input, int limit)
String
instance into strings contained in a
Vector
of size not greater than a specified limit. The
string is split with a regular expression as the delimiter.
The limit parameter essentially says to split the
string only on at most the first limit - 1 number of pattern
occurences.
This method is inspired by the Perl split() function and behaves identically to it when used in conjunction with the Perl5Matcher and Perl5Pattern classes except for the following difference:
In Perl, if the split expression contains parentheses, the split() method creates additional list elements from each of the matching subgroups in the pattern. In other words:
split("/([,-])/", "8-12,15,18")
produces the Vector containing:
{ "8", "-", "12", ",", "15", ",", "18" }
The OROMatcher split method does not follow this behavior. The following Vector would be produced by OROMatcher:
{ "8", "12", "15", "18" }
To obtain the Perl behavior, use split method in the PerlTools package available from http://www.oroinc.com/ .
matcher
- The regular expression matcher to execute the split.pattern
- The regular expression to use as a split delimiter.input
- The String
to split.limit
- The limit on the size of the returned Vector
.
Values <= 0 produce the same behavior as using the
SPLIT_ALL constant which causes the limit to be
ignored and splits to be performed on all occurrences of
the pattern. You should use the SPLIT_ALL constant
to achieve this behavior instead of relying on the default
behavior associated with non-positive limit values.
Vector
containing the substrings of the input
that occur between the regular expression delimiter occurences.
The input will not be split into any more substrings than the
specified limit
. A way of thinking of this is that
only the first limit - 1
matches of the delimiting
regular expression will be used to split the input.public static Vector split(PatternMatcher matcher, Pattern pattern, String input)
String
instance into a Vector
of all its substrings using a regular expression as the delimiter.
This method is inspired by the Perl split() function and behaves
identically to it when used in conjunction with the Perl5Matcher and
Perl5Pattern classes except for the following difference:
split("/([,-])/", "8-12,15,18")
produces the Vector containing:
{ "8", "-", "12", ",", "15", ",", "18" }
The OROMatcher split method does not follow this behavior. The following Vector would be produced by OROMatcher:
{ "8", "12", "15", "18" }
To obtain the Perl behavior, use split method in the PerlTools package available from http://www.oroinc.com/ .
This method is identical to calling:
split(matcher, pattern, input, Util.SPLIT_ALL);
matcher
- The regular expression matcher to execute the split.pattern
- The regular expression to use as a split delimiter.input
- The String
to split.
Vector
containing all the substrings of the input
that occur between the regular expression delimiter occurences.public static String substitute(PatternMatcher matcher, Pattern pattern, Substitution sub, String input, int numSubs)
matcher
- The regular expression matcher to execute the pattern
search.pattern
- The regular expression to search for and substitute
occurrences of.sub
- The Substitution used to substitute pattern occurences.input
- The String
on which to perform substitutions.numSubs
- The number of substitutions to perform. Only the
first numSubs patterns encountered are
substituted. If you want to substitute all occurences
set this parameter to SUBSTITUTE_ALL .
public static String substitute(PatternMatcher matcher, Pattern pattern, Substitution sub, String input)
This method is identical to calling:
substitute(matcher, pattern, sub, input, 1);
matcher
- The regular expression matcher to execute the pattern
search.pattern
- The regular expression to search for and substitute
occurrences of.sub
- The Substitution used to substitute pattern occurences.input
- The String
on which to perform substitutions.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |