Matcher Pattern

来源:互联网 发布:java 格式化数字 编辑:程序博客网 时间:2024/06/12 14:02
  • public final class Matcherextends Objectimplements MatchResult
    An engine引擎 that performs执行  matchoperations操作  on a character sequence byinterpreting解释  a Pattern.

    A matcher匹配器 is created from a pattern模式 by invoking调用  the pattern's matcher method. Once created, a matcher can be used to perform three different kinds of match operations:

    • The matches method attempts尝试  to match theentire整个的 input sequence against the pattern.

    • The lookingAt method attempts to match the input sequence, starting at the beginning, against the pattern.

    • The find method 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 beobtained获得  by querying the state of the matcher.

    A matcher finds matches in a subset子集  of its input called theregion区域 . By default, the region contains all of the matcher's input. The region can bemodified修改 via通过  theregion method and queried via theregionStart andregionEnd methods. The way that the region boundaries边界  interact with some patternconstructs构造  can be changed. SeeuseAnchoringBounds anduseTransparentBounds for more details.

    This class also defines定义  methods for replacing matched subsequences with new strings whose contents can, ifdesired需要 , be computed计算 (new strings contents) from the match result. TheappendReplacement andappendTail methods can be used in tandem in order to collect the result into anexisting 现有的 string buffer, or the more convenientreplaceAll method 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 subsequencecaptured捕获  by eachcapturing group in the pattern as well as a total count of such subsequences. As aconvenience方便 , 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 anIllegalStateException to be thrown. The explicit state of a matcher isrecomputed重新计算 by every match operation.

    The implicit 隐式 state of a matcher includes the input character sequence as well as the append position, which is initially zero and is updated by theappendReplacement method.

    A matcher may be reset explicitly by invoking its reset() method or, if a new input sequence isdesired需要, its reset(CharSequence) method. Resetting a matcherdiscards 放弃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 Patternextends Objectimplements 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. Theresulting得到  pattern can then be used to create aMatcher object that can matcharbitrary任意 character sequences against 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 matches method 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

       boolean b = Pattern.matches("a*b", "aaaaab");
      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.

      Instances of this class are immutable and are safe for use by multiple concurrent threads. Instances of theMatcher class are not safe for such use


原创粉丝点击