JDK11 Matcher类

java.util.regex.Matcher类

  • 概要
  • 静态方法
  • 实例方法
    •      匹配操作
    •      区域边界的设置与查询
    •      匹配状态查询
    •      替换
    •      重置对象状态




概要

Module java.base
Package java.util.regex

所有实现了的接口:
MatchResult

public final class Matcher
extends Object
implements MatchResult


Matcher是一个对字符序列执行各种匹配操作的引擎。
Matcher对象是通过调用Pattern对象的方法matcher( )生成的。Matcher对象可以执行三种类型的匹配操作:

  • matches 方法尝试在区域中,把区域中的一整个序列与模式进行匹配。注意,如果区域中的某个子序列和模式匹配,返回false。只有在区域中的整个序列和模式匹配时,才返回true。
  • lookingAt 方法尝试从区域的起始边界开始,寻找与模式匹配的子序列。
  • find 方法扫描整个区域,寻找与模式匹配的下一个子序列。

Matcher对象在区域(输入序列的子集称为区域)中匹配模式。区域默认包含整个输入序列。可以通过方法 region 修改区域的范围,也可以通过方法 regionStartregionEnd 查询区域的边界。


静态方法

修饰符和类型 方法 描述

注:静态方法未完待续

实例方法

     匹配操作

修饰符和类型 方法 描述
boolean find( ) 在区域中,寻找与模式匹配的下一个子序列
boolean find   (int start) 重置Matcher对象的状态(例如,如果在调用该方法之前设置过区域的边界,那么在调用该方法的时候区域边界会恢复为默认值,即整个输入序列),并从指定的位置寻找与模式匹配的一个子序列
boolean lookingAt ( ) 从区域的起始处,寻找与模式匹配的子序列
boolean matches ( ) 把区域中的一整个序列与模式进行匹配。只有在区域中的整个序列和模式匹配时,才返回true

     区域边界的设置与查询

修饰符和类型 方法 描述
Matcher region(int start, int end) 设置Matcher对象的区域的边界,并返回Matcher对象本身。起始边界(包括)1,结束边界(不包括)2
int regionEnd( ) 返回Matcher对象的区域的结束边界的索引(不包括)
int regionStart( ) 返回Matcher对象的区域的起始边界的索引(包括)

     匹配状态查询

修饰符和类型 方法 描述
int end( ) 返回在前一次匹配操作中寻找到的子序列的结束边界的索引(不包括),即最后一个字符的索引再加一的值
int end(int group) 返回在前一次匹配操作中寻找到的组的结束边界的索引(不包括),即最后一个字符索引再加一的值
String group( ) 返回在前一次匹配操作的第0组3
String group(int group) 返回在前一次匹配操作指定的组
int groupCount( ) 返回在Matcher对象的模式中的组的数量。若只存在组0则返回0,若存在组0和组1则返回1,以此类推
int start( ) 返回在前一次匹配操作中寻找到的子序列的第一个字符的索引
int start(int group) 返回在前一次匹配操作中寻找到的组的第一个字符索引

     替换

修饰符和类型 方法 描述
String replaceAll(String replacement) 在整个输入序列(注意,是整个输入序列,不是区域)中,把匹配模式的子序列替换为指定的字符序列
String replaceFirst(String replacement) 在整个输入序列(注意,是整个输入序列,不是区域)中,把第一个匹配模式的子序列替换为指定的字符序列

     重置对象状态

修饰符和类型 方法 描述
Matcher reset( ) 重置对象的状态,并返回对象本身
Matcher reset(CharSequence input) 重新设置对象的输入序列

注:这里已经列出大部分的实例方法。其余的实例方法未完待续。


  1. 如果区域的第一个字符的索引是b,返回也是 b。对于这种边界在区域内的情况,本文统一在相应的地方标上 (包括)。 ↩︎

  2. 如果区域的最后一个字符的索引是b,却返回 b + 1。对于这种边界不在区域内的情况,本文统一在相应的地方标上 (不包括)。 ↩︎

  3. 组是用括号划分的正则表达式,可以根据组的编号来引用某个组。组号为0表示整个表达式,组号1表示被第一对括号括起来的组,以此类推。例如,在下面这个表达式,
              A(B(C))D
    中有三个组:组0是ABCD,组1是BC,组2是C。 ↩︎

你可能感兴趣的:(JDK)