Java-API简析_java.util.regex.Matcher类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/132571263
出自【进步*于辰的博客

注:依赖类:Pattern

1、概述

继承关系:

  • java.lang.Object
    • java.util.regex.Matcher

所有已实现的接口:
MatchResult


public final class Matcher extends Object implements MatchResult

通过解释 Pattern 对 字符序列 执行匹配操作的引擎。

通过调用模式的 matcher() 从模式创建匹配器。创建匹配器后,可以使用它执行三种不同的匹配操作:

  • matches() 尝试将整个输入序列与该模式匹配。
  • lookingAt() 尝试将输入序列从头开始与该模式匹配。
  • find() 扫描输入序列以查找与该模式匹配的下一个子序列。

每个方法都返回一个表示成功或失败的布尔值。通过查询匹配器的状态可以获取关于成功匹配的更多信息。

匹配器在其输入的子集(称为 区域 \color{green}{区域} 区域)中查找匹配项。默认情况下,此区域包含全部的匹配器输入。可通过 region() 修改区域,通过 regionStart()regionEnd() 查询区域。区域边界与某些模式构造交互的方式是可以更改的。有关此内容更多的信息,请参阅 useAnchoringBounds()useTransparentBounds()

此类还定义使用新字符串替换匹配子序列的方法,需要时,可以从匹配结果计算出新字符串的内容。可以先后使用 appendReplacement()appendTail() 将结果收集到现有的字符串缓冲区,或者使用更加便捷的 replaceAll() 创建一个可以在其中替换输入序列中每个匹配子序列的字符串。

匹配器的显式状态包括最近成功匹配的开始和结束索引。它还包括模式中每个捕获组捕获的输入子序列的开始和结束索引以及该子序列的总数。出于方便的考虑,还提供了以字符串的形式返回这些已捕获子序列的方法。

匹配器的显式状态最初是未定义的;在成功匹配导致 IllegalStateException 抛出之前尝试查询其中的任何部分。每个匹配操作都将重新计算匹配器的显式状态。

匹配器的隐式状态包括输入字符序列和追加位置,追加位置最初是0,然后由 appendReplacement() 更新。

可以通过调用匹配器的 reset() 来显式重置匹配器,如果需要新输入序列,则调用其 reset(CharSequence) 。重置匹配器将放弃其显式状态信息并将追加位置设置为零。

此类的实例用于多个并发线程是不安全的。

从以下版本开始:
1.4

2、方法摘要

2.1 Matcher appendReplacement(StringBuffer sb, String replacement)

实现非终端追加和替换步骤。

2.2 StringBuffer appendTail(StringBuffer sb)

实现终端追加和替换步骤。

2.3 int end()

返回最后匹配字符之后的偏移量。

2.4 int end(int group)

返回在以前的匹配操作期间,由给定组所捕获子序列的最后字符之后的偏移量。

2.5 boolean find()

尝试查找与该模式匹配的输入序列的下一个子序列。

2.5 boolean find(int start)

重置此匹配器,然后尝试查找匹配该模式、从指定索引开始的输入序列的下一个子序列。

2.6 String group()

返回由以前匹配操作所匹配的输入子序列。

2.7 String group(int group)

返回在以前匹配操作期间由给定组捕获的输入子序列。

2.8 int groupCount()

返回此匹配器模式中的捕获组数。

2.9 boolean hasAnchoringBounds()

查询此匹配器区域界限的定位。

2.10 boolean hasTransparentBounds()

查询此匹配器区域边界的透明度。

2.11 boolean hitEnd()

如果匹配器执行的最后匹配操作中搜索引擎遇到输入结尾,则返回 true。

2.12 boolean lookingAt()

尝试将从区域开头开始的输入序列与该模式匹配。

2.13 boolean matches()

尝试将整个区域与模式匹配。

2.14 Pattern pattern()

返回由此匹配器解释的模式。

2.15 static String quoteReplacement(String s)

返回指定 String 的字面值替换 String。

2.16 Matcher region(int start, int end)

设置此匹配器的区域限制。

2.17 int regionEnd()

报告此匹配器区域的结束索引(不包括)。

2.18 int regionStart()

报告此匹配器区域的开始索引。

2.19 String replaceAll(String replacement)

替换模式与给定替换字符串相匹配的输入序列的每个子序列。

2.20 String replaceFirst(String replacement)

替换模式与给定替换字符串匹配的输入序列的第一个子序列。

2.21 boolean requireEnd()

如果很多输入都可以将正匹配更改为负匹配,则返回 true。

2.22 Matcher reset()

重置匹配器。

2.23 Matcher reset(CharSequence input)

重置此具有新输入序列的匹配器。

2.24 int start()

返回以前匹配的初始索引。

2.25 int start(int group)

返回在以前的匹配操作期间,由给定组所捕获的子序列的初始索引。

2.26 MatchResult toMatchResult()

作为 MatchResult 返回此匹配器的匹配状态。

2.27 String toString()

返回匹配器的字符串表示形式。

2.28 Matcher useAnchoringBounds(boolean b)

设置匹配器区域界限的定位。

2.29 Matcher usePattern(Pattern newPattern)

更改此 Matcher 用于查找匹配项的 Pattern。

2.30 Matcher useTransparentBounds(boolean b)

设置此匹配器区域边界的透明度。


本文暂缓更新。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进步·于辰

谢谢打赏!!很高兴可以帮到你!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值