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

  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/rsapaper/p/14734663.html
Copyright © 2011-2022 走看看