模块 java.base

接口 MatchResult

所有已知的实现类:
Matcher

public interface MatchResult
匹配操作的结果。

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

实现注意事项:
对命名组的支持由默认方法 start(String) end(String) group(String) 实现。它们都使用 namedGroups() 返回的映射,其默认实现只是抛出 UnsupportedOperationException 。因此,覆盖 namedGroups() 就足以使这些方法起作用。但是,出于性能或其他原因,直接覆盖它们可能更可取。
自从:
1.5
参见:
  • 方法总结

    修饰符和类型
    方法
    描述
    int
    end()
    返回最后一个字符匹配后的偏移量。
    int
    end(int group)
    返回给定组在此匹配期间捕获的子序列的最后一个字符之后的偏移量。
    default int
    end(String name)
    返回在上一个匹配操作期间给定 命名捕获组 捕获的子序列的最后一个字符之后的偏移量。
    返回与上一个匹配项匹配的输入子序列。
    group(int group)
    返回给定组在上一次匹配操作期间捕获的输入子序列。
    default String
    group(String name)
    返回给定 命名捕获组 在上一个匹配操作期间捕获的输入子序列。
    int
    返回此匹配结果模式中的捕获组数。
    default boolean
    返回 this 是否包含来自先前匹配或查找操作的有效匹配。
    default Map<String,Integer>
    返回一个不可修改的映射,从捕获组名到组号。
    int
    返回匹配的开始索引。
    int
    start(int group)
    返回给定组在此匹配期间捕获的子序列的起始索引。
    default int
    start(String name)
    返回给定 命名捕获组 在上一个匹配操作期间捕获的子序列的起始索引。
  • 方法详情

    • start

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

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

      捕获组 从左到右索引,从 1 开始。零组表示整个模式,因此表达式米。start(0) 相当于米。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)
      返回给定组在此匹配期间捕获的子序列的最后一个字符之后的偏移量。

      捕获组 从左到右索引,从 1 开始。零组表示整个模式,因此表达式米。end(0) 相当于米。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, 表达式米。group()s.substring( 米。start(),  米。end()) 是等效的。

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

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

      String  group(int 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

      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