-
public final class Matcher extends Object implements MatchResult
An engine引擎that performs执行 match operations操作on acharacter sequenceby interpreting解释 aPattern.A matcher匹配器is created from a pattern模式by invoking调用 the pattern's
matchermethod. Once created, a matcher can be used to perform three different kinds of match operations:-
The
matchesmethod attempts尝试to match the entire整个的input sequence against the pattern. -
The
lookingAtmethod attempts to match the input sequence, starting at the beginning, against the pattern. -
The
findmethod scans扫描 the input sequence looking for the next subsequence that matches the pattern.
Each of these methods returns a boolean indicating表示 success or failure. More information about a successful match can be obtained获得 by querying the state of the matcher.
A matcher finds matches in a subset子集 of its input called the region区域. By default, the region contains all of the matcher's input. The region can be modified修改via通过 the
regionmethod and queried via theregionStartandregionEndmethods. The way that the region boundaries边界 interact with some pattern constructs构造 can be changed. SeeuseAnchoringBoundsanduseTransparentBoundsfor more details.This class also defines定义 methods for replacing matched subsequences with new strings whose contents can, if desired需要, be computed计算 (new strings contents)from the match result. The
appendReplacementandappendTailmethods can be used in tandem in order to collect the result into an existing 现有的string buffer, or the more convenientreplaceAllmethod can be used to create a string in which every matching subsequence in the input sequence is replaced.The explicit显示state of a matcher includes the start and end indices索引of the most recent 最近的successful match. It also includes the start and end indices of the input subsequence captured捕获 by eachcapturing group in the pattern as well as a total count of such subsequences. As a convenience方便, methods are also provided for returning these captured subsequences in string form形式.
The explicit state of a matcher is initially最初undefined; attempting尝试 to query any part of it before a successful match will cause an
IllegalStateExceptionto be thrown. The explicit state of a matcher is recomputed重新计算by every match operation.The implicit 隐式state of a matcher includes the input character sequence as well as theappend position, which is initially zero and is updated by the
appendReplacementmethod.A matcher may be reset explicitly by invoking its
reset()method or, if a new input sequence is desired需要, itsreset(CharSequence)method. Resetting a matcher discards 放弃its explicit state information and sets the append position to zero.Instances of this class are not safe for use by multiple concurrent并发threads.
-
public final class Pattern extends Object implements Serializable
A compiled编译representation of a regular expression.A regular expression, specified as a string, must first be compiled into an instance of this class. The resulting得到 pattern can then be used to create a
Matcherobject that can match arbitrary任意character sequencesagainst the regular expression. All of the state involved in performing a match resides in the matcher, so many matchers can share the same pattern.A typical典型 invocation调用sequence is thus
Pattern p = Pattern.
compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches();A
matchesmethod is defined by this class as a convenience for when a regular expression is used just once. This method compiles an expression and matches an input sequence against it in a single invocation. The statement
is equivalent to the three statements above, though for repeated matches it is less efficient since it does not allow the compiled pattern to be reused.boolean b = Pattern.matches("a*b", "aaaaab");Instances of this class are immutable and are safe for use by multiple concurrent threads. Instances of the
Matcherclass are not safe for such use
-
Matcher Pattern
最新推荐文章于 2024-02-01 10:32:16 发布
本文深入探讨了Java中的Matcher类及其在正则表达式匹配中的应用,详细介绍了创建Matcher对象的方法、执行不同类型的匹配操作(如全匹配、局部匹配和查找匹配),以及如何使用Matcher类来替换匹配到的子序列并收集结果到字符串缓冲区或创建新的字符串。同时,文章还阐述了Matcher类的隐式和显式状态,以及如何通过Matcher对象的reset方法重置匹配器。
1万+

被折叠的 条评论
为什么被折叠?



