Matcher Pattern

  • public final class Matcher
    extends Object
    implements MatchResult
    An engine引擎that performs执行 match operations操作on a character sequence by interpreting解释 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 the entire整个的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 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通过 theregion method and queried via theregionStart and regionEnd methods. The way that the region boundaries边界 interact with some pattern constructs构造 can be changed. SeeuseAnchoringBounds and useTransparentBounds for 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. TheappendReplacement and appendTail methods can be used in tandem in order to collect the result into an existing 现有的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 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 anIllegalStateException to 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 appendReplacement method.

    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 aMatcher object that can match arbitrary任意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


你可能感兴趣的:(Pattern)