Module java.base
Package java.util.regex

Interface MatchResult

所有已知的实现类:
Matcher

public interface MatchResult
匹配操作的结果。

此接口包含用于确定与正则表达式匹配结果的查询方法。可以查看但不能通过 MatchResult 修改匹配边界、组和组边界。

实现注意事项:
默认方法 start(String)end(String)group(String) 实现了命名组的支持。它们都利用了由 namedGroups() 返回的映射,其默认实现只是抛出 UnsupportedOperationException。因此,只需重写 namedGroups() 即可使这些方法工作。但是,出于性能或其他原因,直接重写它们可能更可取。
自从:
1.5
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    end()
    返回匹配的最后一个字符之后的偏移量。
    int
    end(int group)
    返回在此匹配期间由给定组捕获的子序列的最后一个字符之后的偏移量。
    default int
    end(String name)
    返回在上一次匹配操作期间由给定 命名捕获组 捕获的子序列的最后一个字符之后的偏移量。
    group()
    返回上一次匹配操作匹配的输入子序列。
    group(int group)
    返回上一次匹配操作期间由给定组捕获的输入子序列。
    default String
    group(String name)
    返回在上一次匹配操作期间由给定 命名捕获组 捕获的输入子序列。
    int
    返回此匹配结果模式中捕获组的数量。
    default boolean
    返回 this 是否包含来自先前匹配或查找操作的有效匹配。
    default Map<String,Integer>
    返回从捕获组名称到组编号的不可修改映射。
    int
    start()
    返回匹配的起始索引。
    int
    start(int group)
    返回在此匹配期间由给定组捕获的子序列的起始索引。
    default int
    start(String name)
    返回在上一次匹配操作期间由给定 命名捕获组 捕获的子序列的起始索引。
  • Method Details

    • start

      int start()
      返回匹配的起始索引。
      返回:
      第一个字符的索引匹配
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
    • start

      int start(int group)
      返回在此匹配期间由给定组捕获的子序列的起始索引。

      捕获组 从左到右索引,从一开始。组零表示整个模式,因此表达式 m.start(0) 等同于 m.start()

      参数:
      group - 此匹配器模式中捕获组的索引
      返回:
      由该组捕获的第一个字符的索引,如果匹配成功但组本身未匹配任何内容,则返回 -1
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
      IndexOutOfBoundsException - 如果模式中没有具有给定索引的捕获组
    • start

      default int start(String name)
      返回在上一次匹配操作期间由给定 命名捕获组 捕获的子序列的起始索引。
      实现要求:
      此方法的默认实现调用 namedGroups() 以从 name 参数获取组编号,并将其用作对 start(int) 的调用的参数。
      参数:
      name - 此匹配器模式中命名捕获组的名称
      返回:
      由该组捕获的第一个字符的索引,如果匹配成功但组本身未匹配任何内容,则返回 -1
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
      IllegalArgumentException - 如果模式中没有具有给定名称的捕获组
      自从:
      20
    • end

      int end()
      返回匹配的最后一个字符之后的偏移量。
      返回:
      匹配的最后一个字符之后的偏移量
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
    • end

      int end(int group)
      返回在此匹配期间由给定组捕获的子序列的最后一个字符之后的偏移量。

      捕获组 从左到右索引,从一开始。组零表示整个模式,因此表达式 m.end(0) 等同于 m.end()

      参数:
      group - 此匹配器模式中捕获组的索引
      返回:
      由该组捕获的最后一个字符之后的偏移量,如果匹配成功但组本身未匹配任何内容,则返回 -1
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
      IndexOutOfBoundsException - 如果模式中没有具有给定索引的捕获组
    • end

      default int end(String name)
      返回在上一次匹配操作期间由给定 命名捕获组 捕获的子序列的最后一个字符之后的偏移量。
      实现要求:
      此方法的默认实现调用 namedGroups() 以从 name 参数获取组编号,并将其用作对 end(int) 的调用的参数。
      参数:
      name - 此匹配器模式中命名捕获组的名称
      返回:
      由该组捕获的最后一个字符之后的偏移量,如果匹配成功但组本身未匹配任何内容,则返回 -1
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
      IllegalArgumentException - 如果模式中没有具有给定名称的捕获组
      自从:
      20
    • group

      String group()
      返回上一次匹配操作匹配的输入子序列。

      对于匹配器 m 和输入序列 s,表达式 m.group()s.substring(m.start(), m.end()) 是等效的。

      请注意,某些模式,例如 a*,匹配空字符串。当模式成功匹配输入中的空字符串时,此方法将返回空字符串。

      返回:
      上一次匹配中匹配的(可能为空)子序列,以字符串形式
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
    • group

      String group(int group)
      返回上一次匹配操作期间由给定组捕获的输入子序列。

      对于匹配器 m、输入序列 s 和组索引 g,表达式 m.group(g)s.substring(m.start(g ), m.end(g)) 是等效的。

      捕获组 从左到右索引,从一开始。组零表示整个模式,因此表达式 m.group(0) 等同于 m.group()

      如果匹配成功但指定的组未能匹配输入序列的任何部分,则返回 null。请注意,某些组,例如 (a*),匹配空字符串。当这样的组成功匹配输入中的空字符串时,此方法将返回空字符串。

      参数:
      group - 此匹配器模式中捕获组的索引
      返回:
      上一次匹配期间由该组捕获的(可能为空)子序列,如果该组未能匹配输入的部分,则返回 null
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者上一个匹配操作失败
      IndexOutOfBoundsException - 如果模式中没有具有给定索引的捕获组
    • group

      default String group(String name)
      返回在先前匹配操作期间由给定的命名捕获组捕获的输入子序列。

      如果匹配成功但指定的组未能匹配输入序列的任何部分,则返回null。请注意,有些组,例如(a*),匹配空字符串。当这样的组成功匹配输入中的空字符串时,此方法将返回空字符串。

      实现要求:
      此方法的默认实现调用namedGroups()以从name参数中获取组号,并将其用作对group(int)的调用的参数。
      参数:
      name - 此匹配器模式中命名捕获组的名称
      返回:
      在先前匹配期间由命名组捕获的(可能为空的)子序列,如果组未能匹配输入的部分,则返回null
      抛出:
      IllegalStateException - 如果尚未尝试匹配,或者先前的匹配操作失败
      IllegalArgumentException - 如果模式中没有具有给定名称的捕获组
      自:
      20
    • groupCount

      int groupCount()
      返回此匹配结果模式中捕获组的数量。

      按照惯例,组零表示整个模式。它不包括在此计数中。

      此方法返回的值小于或等于此方法返回的值的任何非负整数都保证是此匹配器的有效组索引。

      返回:
      此匹配器模式中捕获组的数量
    • namedGroups

      default Map<String,Integer> namedGroups()
      返回从捕获组名称到组号的不可修改映射。如果没有命名组,则返回空映射。
      API 注意:
      必须通过支持命名组的实现来重写此方法。
      实现要求:
      此方法的默认实现始终抛出UnsupportedOperationException
      返回:
      从捕获组名称到组号的不可修改映射
      抛出:
      UnsupportedOperationException - 如果实现不支持命名组
      自:
      20
    • hasMatch

      default boolean hasMatch()
      返回this是否包含先前匹配或查找操作的有效匹配。
      实现要求:
      此方法的默认实现始终抛出UnsupportedOperationException
      返回:
      this是否包含有效匹配
      抛出:
      UnsupportedOperationException - 如果实现无法报告是否存在匹配
      自:
      20