APIdia Launch Partner
Top Description Methods
java.util.regex

public Interface MatchResult

Known Direct Implementers
java.util.regex.Matcher, java.util.regex.Matcher.ImmutableMatchResult
Imports
java.util.Map, .Objects

The result of a match operation.

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.

Implementation Note

Support for named groups is implemented by the default methods 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.

Author
Michael McCloskey
Since
1.5
See Also
Matcher

Method Summary

Modifier and TypeMethod and Description
public int

Returns:

The offset after the last character matched
end
()

Returns the offset after the last character matched.

public int

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
end
(int
The index of a capturing group in this matcher's pattern
group
)

Returns the offset after the last character of the subsequence captured by the given group during this match.

public default int

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
end
(String
The name of a named-capturing group in this matcher's pattern
name
)

Returns the offset after the last character of the subsequence captured by the given named-capturing group during the previous match operation.

public String

Returns:

The (possibly empty) subsequence matched by the previous match, in string form
group
()

Returns the input subsequence matched by the previous match.

public String

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
group
(int
The index of a capturing group in this matcher's pattern
group
)

Returns the input subsequence captured by the given group during the previous match operation.

public default String

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
group
(String
The name of a named-capturing group in this matcher's pattern
name
)

Returns the input subsequence captured by the given named-capturing group during the previous match operation.

public int

Returns:

The number of capturing groups in this matcher's pattern
groupCount
()

Returns the number of capturing groups in this match result's pattern.

private int
public default boolean

Returns:

whether this contains a valid match
hasMatch
()

Returns whether this contains a valid match from a previous match or find operation.

public default Map<String, Integer>

Returns:

an unmodifiable map from capturing group names to group numbers
namedGroups
()

Returns an unmodifiable map from capturing group names to group numbers.

public int

Returns:

The index of the first character matched
start
()

Returns the start index of the match.

public int

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
start
(int
The index of a capturing group in this matcher's pattern
group
)

Returns the start index of the subsequence captured by the given group during this match.

public default int

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
start
(String
The name of a named-capturing group in this matcher's pattern
name
)

Returns the start index of the subsequence captured by the given named-capturing group during the previous match operation.

Method Detail

endback to summary
public int end()

Returns the offset after the last character matched.

Returns:int

The offset after the last character matched

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
endback to summary
public 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 expression m.end(0) is equivalent to m.end().

Parameters
group:int

The index of a capturing group in this matcher's pattern

Returns:int

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

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
IndexOutOfBoundsException:
If there is no capturing group in the pattern with the given index
endback to summary
public default int end(String name)

Returns the offset after the last character of the subsequence captured by the given named-capturing group during the previous match operation.

Implementation Specification

The default implementation of this method invokes namedGroups() to obtain the group number from the name argument, and uses it as argument to an invocation of end(int).

Parameters
name:String

The name of a named-capturing group in this matcher's pattern

Returns:int

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

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
IllegalArgumentException:
If there is no capturing group in the pattern with the given name
Since
20
groupback to summary
public String group()

Returns the input subsequence matched by the previous match.

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.

Returns:String

The (possibly empty) subsequence matched by the previous match, in string form

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
groupback to summary
public String group(int group)

Returns the input subsequence captured by the given group during the previous match operation.

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.

Parameters
group:int

The index of a capturing group in this matcher's pattern

Returns:String

The (possibly empty) subsequence captured by the group during the previous match, or null if the group failed to match part of the input

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
IndexOutOfBoundsException:
If there is no capturing group in the pattern with the given index
groupback to summary
public default String group(String name)

Returns the input subsequence captured by the given named-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 Specification

The default implementation of this method invokes namedGroups() to obtain the group number from the name argument, and uses it as argument to an invocation of group(int).

Parameters
name:String

The name of a named-capturing group in this matcher's pattern

Returns:String

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

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
IllegalArgumentException:
If there is no capturing group in the pattern with the given name
Since
20
groupCountback to summary
public 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:int

The number of capturing groups in this matcher's pattern

groupNumberback to summary
private int groupNumber(String name)
hasMatchback to summary
public default boolean hasMatch()

Returns whether this contains a valid match from a previous match or find operation.

Implementation Specification

The default implementation of this method always throws UnsupportedOperationException

Returns:boolean

whether this contains a valid match

Exceptions
UnsupportedOperationException:
if the implementation cannot report whether it has a match
Since
20
namedGroupsback to summary
public default Map<String, Integer> namedGroups()

Returns an unmodifiable map from capturing group names to group numbers. If there are no named groups, returns an empty map.

Implementation Specification

The default implementation of this method always throws UnsupportedOperationException

API Note

This method must be overridden by an implementation that supports named groups.

Returns:Map<String, Integer>

an unmodifiable map from capturing group names to group numbers

Exceptions
UnsupportedOperationException:
if the implementation does not support named groups.
Since
20
startback to summary
public int start()

Returns the start index of the match.

Returns:int

The index of the first character matched

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
startback to summary
public 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 expression m.start(0) is equivalent to m.start().

Parameters
group:int

The index of a capturing group in this matcher's pattern

Returns:int

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

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
IndexOutOfBoundsException:
If there is no capturing group in the pattern with the given index
startback to summary
public default int start(String name)

Returns the start index of the subsequence captured by the given named-capturing group during the previous match operation.

Implementation Specification

The default implementation of this method invokes namedGroups() to obtain the group number from the name argument, and uses it as argument to an invocation of start(int).

Parameters
name:String

The name of a named-capturing group in this matcher's pattern

Returns:int

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

Exceptions
IllegalStateException:
If no match has yet been attempted, or if the previous match operation failed
IllegalArgumentException:
If there is no capturing group in the pattern with the given name
Since
20