作者:wocanimagebi | 来源:互联网 | 2023-09-09 11:31
为了方便起见,下列方法根据功能进行分组。publicintend:返回在上一次匹配操作期间由给定组捕获的子序列的最后一个字符之后的偏移量。.publicMatcherappe
# Matcher方法
本节介绍Matcher类的其他有用方法。 为了方便起见,以下方法按功能分组。
#索引方法
索引方法提供了一个有用的索引值,该值准确地指示输入字符串中的匹配位置。 public int start (:返回最后一个匹配的开始索引。
publicintstart(intgroup ) :返回上一次匹配操作期间由特定组获取的子序列的开始索引。
public int end () :返回最后一个字符匹配后的偏移。
publicintend(intgroup ) :返回自上次匹配操作期间由特定组捕获的子序列的最后一个字符以来的偏移。
#检验方法public boolean lookingAt () :尝试从区域的开头开始将输入序列与图案匹配。
public boolean find (:尝试找到匹配模式的输入序列的下一个子序列。
publicbooleanfind(intstart ) :重置此匹配器,并尝试从指定索引找到与模式匹配的输入序列中的下一个子序列。
公共布尔匹配() :尝试将整个区域与模式匹配。
#置换方法
替换方法是替换输入字符串中的文本的方便方法。 publicmatcherappendreplacement (string buffer sb,String replacement ) :执行非终端添加和替换步骤。
公共缓冲区(sb ) :实现终端的添加和交换过程。
公共字符串替换全部(string replace all ) :用指定的替换字符串替换与模式匹配的输入序列中的每个子序列。
publicstringreplacefirst (string replacement ) :用指定的替换字符串替换与模式匹配的输入序列的第一个子序列。
publicstaticstringquotereplacement (strings ) :返回由string指定的文本而不是string。 此方法生成一个appendReplacement方法Matcher,该方法在类的方法中将String替换为字符。 生成的字符串s被视为字符串序列。 斜线“\”和美元符号“$”没有特别的意义。
使用开始和结束方法
下面的示例计算单词" dog "在输入字符串中出现的次数:
在本示例中,单词边界用于确保字符“d”“o”“g”不仅仅是长单词的子字符串。 输入字符串中一致的地方是、
也提供了有用的信息。 此start方法返回特定组在以前的匹配操作中获取的子序列的开始索引,end返回匹配的最后一个字符的索引。
使用matches和lookingAt方法
matches和lookingAt方法尝试将模式与输入序列相匹配。 但是,matches需要整个输入序列的匹配,
不需要lookingAt。 这两种方法都始终从输入字符串的开头开始。 以下是一些示例
#替换第一个(字符串)和替换所有(字符串)
在replaceFirst中将与指定正则表达式匹配的文本替换为replaceAll方法。 根据他们的名字,replaceFirst将替换最初出现的内容,replaceAll将替换所有事件。
在第一个版本中,出现的所有代码dog都将被cat替换。 但是为什么停在这里? 不是替换简单的字符dog,
可以替换与正则表达式匹配的文本。 该方法的API返回“给出正则表达式a*b,输入aabfooaabfooabfoob和替换字符串-,
在表达式匹配中调用此方法将生成字符串- foo-foo-foo-foo -。
kxdyf中量词的知识: a*b表示ab或b都满足条件,但属于贪婪量词,会出现长度为零的结果。 结果,出现了上述输出效果
# append replacement (string buffer,string ) andappendtail (string buffer )
Matcher类还提供了appendReplacement和appendTail文本替换方法。 使用这两种方法实现相同效果的replaceAll
与java.lang.String等效的方法
为了方便起见,String类也模仿了一些Matcher方法。 publicstringreplacefirst (string regex,String replacement ),用指定的替换项替换与指定正则表达式匹配的字符串的第一个子字符串。 对这些方法的调用将产生与表达式完全相同的结果。 str.replacefirst(regex,repl )和pattern.com pile (regex ).matcher ) str ).replace first (repl ) )。
公共字符串替换全部(string regex,String replacement ) :用指定的替换项替换此字符串中与指定正则表达式匹配的每个子字符串。 对这些方法的调用将产生与表达式完全相同的结果。 str.replaceall(regex,repl )和pattern.com pile (regex ).matcher (str ).replace all (repl ) )。