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)
    }

  • 相关阅读:
    margin和pading的百分比值
    Vue中的computed和watch
    JS的自身属性和继承属性
    JS对象的可枚举属性和不可枚举属性
    Dart语言学习
    Practice_Test
    Lesson2 basic python_20200920
    Python 基础语法L1
    小男孩和狗的故事
    智者的故事
  • 原文地址:https://www.cnblogs.com/rsapaper/p/14734663.html
Copyright © 2011-2022 走看看