Interface MatchResult
- All Known Implementing Classes:
Matcher
This interface contains query methods used to determine the results of a match against a regular expression. The match boundaries, groups and group boundaries can be seen but not modified through aMatchResult
.
- Implementation Note:
- Support for named groups is implemented by the default methods
start(String)
,end(String)
andgroup(String)
. They all make use of the map returned bynamedGroups()
, whose default implementation simply throwsUnsupportedOperationException
. It is thus sufficient to overridenamedGroups()
for these methods to work. However, overriding them directly might be preferable for performance or other reasons. - Since:
- 1.5
- See Also:
Method Summary
Modifier and TypeMethodDescriptionint
end()
Returns the offset after the last character matched.int
end
(int group) Returns the offset after the last character of the subsequence captured by the given group during this match.default int
Returns the offset after the last character of the subsequence captured by the givennamed-capturing group during the previous match operation.group()
Returns the input subsequence matched by the previous match.group
(int group) Returns the input subsequence captured by the given group during the previous match operation.defaultString
Returns the input subsequence captured by the givennamed-capturing group during the previous match operation.int
Returns the number of capturing groups in this match result's pattern.default boolean
hasMatch()
Returns whetherthis
contains a valid match from a previous match or find operation.Returns an unmodifiable map from capturing group names to group numbers.int
start()
Returns the start index of the match.int
start
(int group) Returns the start index of the subsequence captured by the given group during this match.default int
Returns the start index of the subsequence captured by the givennamed-capturing group during the previous match operation.
Method Details
start
int start()Returns the start index of the match.- Returns:
- The index of the first character matched
- Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failed
start
int start(int group) Returns the start index of the subsequence captured by the given group during this match.Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expressionm.
start(0)
is equivalent tom.start()
.- Parameters:
group
- The index of a capturing group in this matcher's pattern- Returns:
- The index of the first character captured by the group, or
-1
if the match was successful but the group itself did not match anything - Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedIndexOutOfBoundsException
- If there is no capturing group in the pattern with the given index
start
Returns the start index of the subsequence captured by the givennamed-capturing group during the previous match operation.- Implementation Requirements:
- The default implementation of this method invokes
namedGroups()
to obtain the group number from thename
argument, and uses it as argument to an invocation ofstart(int)
. - Parameters:
name
- The name of a named-capturing group in this matcher's pattern- Returns:
- The index of the first character captured by the group, or
-1
if the match was successful but the group itself did not match anything - Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedIllegalArgumentException
- If there is no capturing group in the pattern with the given name- Since:
- 20
end
int end()Returns the offset after the last character matched.- Returns:
- The offset after the last character matched
- Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failed
end
int end(int group) Returns the offset after the last character of the subsequence captured by the given group during this match.Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expressionm.
end(0)
is equivalent tom.end()
.- Parameters:
group
- The index of a capturing group in this matcher's pattern- Returns:
- The offset after the last character captured by the group, or
-1
if the match was successful but the group itself did not match anything - Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedIndexOutOfBoundsException
- If there is no capturing group in the pattern with the given index
end
Returns the offset after the last character of the subsequence captured by the givennamed-capturing group during the previous match operation.- Implementation Requirements:
- The default implementation of this method invokes
namedGroups()
to obtain the group number from thename
argument, and uses it as argument to an invocation ofend(int)
. - Parameters:
name
- The name of a named-capturing group in this matcher's pattern- Returns:
- The offset after the last character captured by the group, or
-1
if the match was successful but the group itself did not match anything - Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedIllegalArgumentException
- If there is no capturing group in the pattern with the given name- Since:
- 20
group
String group()Returns the input subsequence matched by the previous match.For a matcherm with input sequences, the expressionsm.
group()
ands.substring(
m.start(),
m.end())
are equivalent.Note that some patterns, for example
a*
, match the empty string. This method will return the empty string when the pattern successfully matches the empty string in the input.- Returns:
- The (possibly empty) subsequence matched by the previous match, in string form
- Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failed
group
Returns the input subsequence captured by the given group during the previous match operation.For a matcherm, input sequences, and group indexg, the expressionsm.
group(
g)
ands.substring(
m.start(
g),
m.end(
g))
are equivalent.Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expression
m.group(0)
is equivalent tom.group()
.If the match was successful but the group specified failed to match any part of the input sequence, then
null
is returned. Note that some groups, for example(a*)
, match the empty string. This method will return the empty string when such a group successfully matches the empty string in the input.- Parameters:
group
- The index of a capturing group in this matcher's pattern- Returns:
- The (possibly empty) subsequence captured by the group during the previous match, or
null
if the group failed to match part of the input - Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedIndexOutOfBoundsException
- If there is no capturing group in the pattern with the given index
group
Returns the input subsequence captured by the givennamed-capturing group during the previous match operation.If the match was successful but the group specified failed to match any part of the input sequence, then
null
is returned. Note that some groups, for example(a*)
, match the empty string. This method will return the empty string when such a group successfully matches the empty string in the input.- Implementation Requirements:
- The default implementation of this method invokes
namedGroups()
to obtain the group number from thename
argument, and uses it as argument to an invocation ofgroup(int)
. - Parameters:
name
- The name of a named-capturing group in this matcher's pattern- Returns:
- The (possibly empty) subsequence captured by the named group during the previous match, or
null
if the group failed to match part of the input - Throws:
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedIllegalArgumentException
- If there is no capturing group in the pattern with the given name- Since:
- 20
groupCount
int groupCount()Returns the number of capturing groups in this match result's pattern.Group zero denotes the entire pattern by convention. It is not included in this count.
Any non-negative integer smaller than or equal to the value returned by this method is guaranteed to be a valid group index for this matcher.
- Returns:
- The number of capturing groups in this matcher's pattern
namedGroups
Returns an unmodifiable map from capturing group names to group numbers. If there are no named groups, returns an empty map.- API Note:
- This method must be overridden by an implementation that supports named groups.
- Implementation Requirements:
- The default implementation of this method always throws
UnsupportedOperationException
- Returns:
- an unmodifiable map from capturing group names to group numbers
- Throws:
UnsupportedOperationException
- if the implementation does not support named groups.- Since:
- 20
hasMatch
default boolean hasMatch()Returns whetherthis
contains a valid match from a previous match or find operation.- Implementation Requirements:
- The default implementation of this method always throws
UnsupportedOperationException
- Returns:
- whether
this
contains a valid match - Throws:
UnsupportedOperationException
- if the implementation cannot report whether it has a match- Since:
- 20