Matcher
public interface MatchResult
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 a MatchResult
.
start(String)
, end(String)
and group(String)
. They all make use of the map returned by namedGroups()
, whose default implementation simply throws UnsupportedOperationException
. It is thus sufficient to override namedGroups()
for these methods to work. However, overriding them directly might be preferable for performance or other reasons.Modifier and Type | Method | Description |
---|---|---|
int |
end() |
Returns the offset after the last character matched. |
int |
end |
Returns the offset after the last character of the subsequence captured by the given group during this match. |
default int |
end |
Returns the offset after the last character of the subsequence captured by the given named-capturing group during the previous match operation. |
String |
group() |
Returns the input subsequence matched by the previous match. |
String |
group |
Returns the input subsequence captured by the given group during the previous match operation. |
default String |
group |
Returns the input subsequence captured by the given named-capturing group during the previous match operation. |
int |
groupCount() |
Returns the number of capturing groups in this match result's pattern. |
default boolean |
hasMatch() |
Returns whether this contains a valid match from a previous match or find operation. |
default Map |
namedGroups() |
Returns an unmodifiable map from capturing group names to group numbers. |
int |
start() |
Returns the start index of the match. |
int |
start |
Returns the start index of the subsequence captured by the given group during this match. |
default int |
start |
Returns the start index of the subsequence captured by the given named-capturing group during the previous match operation. |
int start()
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedint start(int group)
Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expression m.start(0)
is equivalent to m.start()
.
group
- The index of a capturing group in this matcher's pattern-1
if the match was successful but the group itself did not match anythingIllegalStateException
- 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 indexdefault int start(String name)
namedGroups()
to obtain the group number from the name
argument, and uses it as argument to an invocation of start(int)
.name
- The name of a named-capturing group in this matcher's pattern-1
if the match was successful but the group itself did not match anythingIllegalStateException
- 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 nameint end()
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedint end(int group)
Capturing groups are indexed from left to right, starting at one. Group zero denotes the entire pattern, so the expression m.end(0)
is equivalent to m.end()
.
group
- The index of a capturing group in this matcher's pattern-1
if the match was successful but the group itself did not match anythingIllegalStateException
- 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 indexdefault int end(String name)
namedGroups()
to obtain the group number from the name
argument, and uses it as argument to an invocation of end(int)
.name
- The name of a named-capturing group in this matcher's pattern-1
if the match was successful but the group itself did not match anythingIllegalStateException
- 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 nameString group()
For a matcher m with input sequence s, the expressions m.group()
and s.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.
IllegalStateException
- If no match has yet been attempted, or if the previous match operation failedString group(int group)
For a matcher m, input sequence s, and group index g, the expressions m.group(
g)
and s.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 to m.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.
group
- The index of a capturing group in this matcher's patternnull
if the group failed to match part of the inputIllegalStateException
- 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 indexdefault String group(String name)
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.
namedGroups()
to obtain the group number from the name
argument, and uses it as argument to an invocation of group(int)
.name
- The name of a named-capturing group in this matcher's patternnull
if the group failed to match part of the inputIllegalStateException
- 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 nameint groupCount()
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.
default Map<String,Integer> namedGroups()
UnsupportedOperationException
UnsupportedOperationException
- if the implementation does not support named groups.default boolean hasMatch()
this
contains a valid match from a previous match or find operation.UnsupportedOperationException
this
contains a valid matchUnsupportedOperationException
- if the implementation cannot report whether it has a match
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/regex/MatchResult.html