- 所有已知的实现类:
Matcher
public interface MatchResult
匹配操作的结果。
此接口包含用于确定与正则表达式的匹配结果的查询方法。可以看到匹配边界、组和组边界,但不能通过 MatchResult 修改。
- 实现注意事项:
-
对命名组的支持由默认方法
start(String)、end(String)和group(String)实现。它们都使用namedGroups()返回的映射,其默认实现只是抛出UnsupportedOperationException。因此,覆盖namedGroups()就足以使这些方法起作用。但是,出于性能或其他原因,直接覆盖它们可能更可取。 - 自从:
- 1.5
- 参见:
-
方法总结
修饰符和类型方法描述intend()返回最后一个字符匹配后的偏移量。intend(int group) 返回给定组在此匹配期间捕获的子序列的最后一个字符之后的偏移量。default int返回在上一个匹配操作期间给定 命名捕获组 捕获的子序列的最后一个字符之后的偏移量。group()返回与上一个匹配项匹配的输入子序列。group(int group) 返回给定组在上一次匹配操作期间捕获的输入子序列。default String返回给定 命名捕获组 在上一个匹配操作期间捕获的输入子序列。int返回此匹配结果模式中的捕获组数。default booleanhasMatch()返回this是否包含来自先前匹配或查找操作的有效匹配。返回一个不可修改的映射,从捕获组名到组号。intstart()返回匹配的开始索引。intstart(int group) 返回给定组在此匹配期间捕获的子序列的起始索引。default int返回给定 命名捕获组 在上一个匹配操作期间捕获的子序列的起始索引。
-
方法详情
-
start
int start()返回匹配的开始索引。- 返回:
- 第一个匹配字符的索引
- 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败
-
start
int start(int group) 返回给定组在此匹配期间捕获的子序列的起始索引。捕获组 从左到右索引,从 1 开始。零组表示整个模式,因此表达式米。
start(0)相当于米。start().- 参数:
group- 此匹配器模式中捕获组的索引- 返回:
-
组捕获的第一个字符的索引,如果匹配成功但组本身没有匹配任何内容,则返回
-1 - 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败IndexOutOfBoundsException- 如果在给定索引的模式中没有捕获组
-
start
返回给定 命名捕获组 在上一个匹配操作期间捕获的子序列的起始索引。- 实现要求:
-
此方法的默认实现调用
namedGroups()从name参数中获取组号,并将其用作调用start(int)的参数。 - 参数:
name- 此匹配器模式中命名捕获组的名称- 返回:
-
组捕获的第一个字符的索引,如果匹配成功但组本身没有匹配任何内容,则返回
-1 - 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败IllegalArgumentException- 如果模式中没有具有给定名称的捕获组- 自从:
- 20
-
end
int end()返回最后一个字符匹配后的偏移量。- 返回:
- 最后一个字符匹配后的偏移量
- 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败
-
end
int end(int group) 返回给定组在此匹配期间捕获的子序列的最后一个字符之后的偏移量。捕获组 从左到右索引,从 1 开始。零组表示整个模式,因此表达式米。
end(0)相当于米。end().- 参数:
group- 此匹配器模式中捕获组的索引- 返回:
-
组捕获的最后一个字符之后的偏移量,如果匹配成功但组本身没有匹配任何内容,则为
-1 - 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败IndexOutOfBoundsException- 如果在给定索引的模式中没有捕获组
-
end
返回在上一个匹配操作期间给定 命名捕获组 捕获的子序列的最后一个字符之后的偏移量。- 实现要求:
-
此方法的默认实现调用
namedGroups()从name参数中获取组号,并将其用作调用end(int)的参数。 - 参数:
name- 此匹配器模式中命名捕获组的名称- 返回:
-
组捕获的最后一个字符之后的偏移量,如果匹配成功但组本身没有匹配任何内容,则为
-1 - 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败IllegalArgumentException- 如果模式中没有具有给定名称的捕获组- 自从:
- 20
-
group
String group()返回与上一个匹配项匹配的输入子序列。对于匹配器m带输入序列s, 表达式米。
group()和s.substring(米。start(),米。end())是等效的。请注意,某些模式(例如
a*)与空字符串匹配。当模式成功匹配输入中的空字符串时,此方法将返回空字符串。- 返回:
- 上一个匹配项匹配的(可能为空的)子序列,以字符串形式
- 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败
-
group
返回给定组在上一次匹配操作期间捕获的输入子序列。对于匹配器m, 输入序列s, 和组索引g, 表达式米。
group(g)和s.substring(米。start(g),米。end(g))是等效的。捕获组 从左到右索引,从 1 开始。组零表示整个模式,因此表达式
m.group(0)等同于m.group()。如果匹配成功但指定的组未能匹配输入序列的任何部分,则返回
null。请注意,某些组(例如(a*))匹配空字符串。当此类组成功匹配输入中的空字符串时,此方法将返回空字符串。- 参数:
group- 此匹配器模式中捕获组的索引- 返回:
-
该组在上一次匹配期间捕获的(可能为空的)子序列,或者如果该组未能匹配部分输入则为
null - 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败IndexOutOfBoundsException- 如果在给定索引的模式中没有捕获组
-
group
返回给定 命名捕获组 在上一个匹配操作期间捕获的输入子序列。如果匹配成功但指定的组未能匹配输入序列的任何部分,则返回
null。请注意,某些组(例如(a*))匹配空字符串。当此类组成功匹配输入中的空字符串时,此方法将返回空字符串。- 实现要求:
-
此方法的默认实现调用
namedGroups()从name参数中获取组号,并将其用作调用group(int)的参数。 - 参数:
name- 此匹配器模式中命名捕获组的名称- 返回:
-
命名组在上一次匹配期间捕获的(可能为空)子序列,或者如果该组未能匹配部分输入则为
null - 抛出:
IllegalStateException- 如果尚未尝试匹配,或者之前的匹配操作失败IllegalArgumentException- 如果模式中没有具有给定名称的捕获组- 自从:
- 20
-
groupCount
int groupCount()返回此匹配结果模式中的捕获组数。组零按照惯例表示整个模式。它不包括在此计数中。
任何小于或等于此方法返回值的非负整数都保证是此匹配器的有效组索引。
- 返回:
- 此匹配器模式中的捕获组数
-
namedGroups
返回一个不可修改的映射,从捕获组名到组号。如果没有命名组,则返回一个空映射。- API 注意:
- 此方法必须由支持命名组的实现覆盖。
- 实现要求:
-
此方法的默认实现总是抛出
UnsupportedOperationException - 返回:
- 从捕获组名到组号的不可修改的映射
- 抛出:
UnsupportedOperationException- 如果实现不支持命名组。- 自从:
- 20
-
hasMatch
default boolean hasMatch()返回this是否包含来自先前匹配或查找操作的有效匹配。- 实现要求:
-
此方法的默认实现总是抛出
UnsupportedOperationException - 返回:
this是否包含有效匹配- 抛出:
UnsupportedOperationException- 如果实现无法报告它是否匹配- 自从:
- 20
-