zoukankan      html  css  js  c++  java
  • CompilePOSIX

    // Copy returns a new Regexp object copied from re.
    // Calling Longest on one copy does not affect another.
    //
    // Deprecated: In earlier releases, when using a Regexp in multiple goroutines,
    // giving each goroutine its own copy helped to avoid lock contention.
    // As of Go 1.12, using Copy is no longer necessary to avoid lock contention.
    // Copy may still be appropriate if the reason for its use is to make
    // two copies with different Longest settings.
    func (re *Regexp) Copy() *Regexp {
    re2 := *re
    return &re2
    }

    // Compile parses a regular expression and returns, if successful,
    // a Regexp object that can be used to match against text.
    //
    // When matching against text, the regexp returns a match that
    // begins as early as possible in the input (leftmost), and among those
    // it chooses the one that a backtracking search would have found first.
    // This so-called leftmost-first matching is the same semantics
    // that Perl, Python, and other implementations use, although this
    // package implements it without the expense of backtracking.
    // For POSIX leftmost-longest matching, see CompilePOSIX.
    func Compile(expr string) (*Regexp, error) {
    return compile(expr, syntax.Perl, false)
    }

    // CompilePOSIX is like Compile but restricts the regular expression
    // to POSIX ERE (egrep) syntax and changes the match semantics to
    // leftmost-longest.
    //
    // That is, when matching against text, the regexp returns a match that
    // begins as early as possible in the input (leftmost), and among those
    // it chooses a match that is as long as possible.
    // This so-called leftmost-longest matching is the same semantics
    // that early regular expression implementations used and that POSIX
    // specifies.
    //
    // However, there can be multiple leftmost-longest matches, with different
    // submatch choices, and here this package diverges from POSIX.
    // Among the possible leftmost-longest matches, this package chooses
    // the one that a backtracking search would have found first, while POSIX
    // specifies that the match be chosen to maximize the length of the first
    // subexpression, then the second, and so on from left to right.
    // The POSIX rule is computationally prohibitive and not even well-defined.
    // See https://swtch.com/~rsc/regexp/regexp2.html#posix for details.
    func CompilePOSIX(expr string) (*Regexp, error) {
    return compile(expr, syntax.POSIX, true)
    }

  • 相关阅读:
    杭电 1596 find the safest road (最短路)
    回溯法——求解N皇后问题
    iptables apache2
    POJ 2586 Y2K Accounting Bug(枚举大水题)
    JAVA学习第十九课(java程序的异常处理 (二))
    XHTML中button加入超链接以及使插入图片与屏幕一样大
    每天一个JavaScript实例-apply和call的使用方法
    【HDU 5384】Danganronpa(AC自己主动机)
    小心APP应用让你成为“透明人”
    第一讲:使用html5——canvas绘制奥运五环
  • 原文地址:https://www.cnblogs.com/rsapaper/p/14734663.html
Copyright © 2011-2022 走看看