zoukankan      html  css  js  c++  java
  • ngx.re.match

    ngx.re.match
    syntax: captures, err = ngx.re.match(subject, regex, options?, ctx?, res_table?)
    
    context: init_worker_by_lua*, set_by_lua*, rewrite_by_lua*, access_by_lua*, content_by_lua*, header_filter_by_lua*, body_filter_by_lua*, log_by_lua*, ngx.timer.*, balancer_by_lua*, ssl_certificate_by_lua*, ssl_session_fetch_by_lua*, ssl_session_store_by_lua*
    
    Matches the subject string using the Perl compatible regular expression regex with the optional options.
    
    Only the first occurrence of the match is returned, or nil if no match is found. In case of errors, like seeing a bad regular expression or exceeding the PCRE stack limit, nil and a string describing the error will be returned.
    
    When a match is found, a Lua table captures is returned, where captures[0] holds the whole substring being matched, and captures[1] holds the first parenthesized sub-pattern's capturing, captures[2] the second, and so on.
    
     local m, err = ngx.re.match("hello, 1234", "[0-9]+")
     if m then
         -- m[0] == "1234"
    
     else
         if err then
             ngx.log(ngx.ERR, "error: ", err)
             return
         end
    
         ngx.say("match not found")
     end
     local m, err = ngx.re.match("hello, 1234", "([0-9])[0-9]+")
     -- m[0] == "1234"
     -- m[1] == "1"
    Named captures are also supported since the v0.7.14 release and are returned in the same Lua table as key-value pairs as the numbered captures.
    
     local m, err = ngx.re.match("hello, 1234", "([0-9])(?<remaining>[0-9]+)")
     -- m[0] == "1234"
     -- m[1] == "1"
     -- m[2] == "234"
     -- m["remaining"] == "234"
    Unmatched subpatterns will have false values in their captures table fields.
    
     local m, err = ngx.re.match("hello, world", "(world)|(hello)|(?<named>howdy)")
     -- m[0] == "hello"
     -- m[1] == false
     -- m[2] == "hello"
     -- m[3] == false
     -- m["named"] == false
    Specify options to control how the match operation will be performed. The following option characters are supported:
    
    a             anchored mode (only match from the beginning)
    
    d             enable the DFA mode (or the longest token match semantics).
                  this requires PCRE 6.0+ or else a Lua exception will be thrown.
                  first introduced in ngx_lua v0.3.1rc30.
    
    D             enable duplicate named pattern support. This allows named
                  subpattern names to be repeated, returning the captures in
                  an array-like Lua table. for example,
                    local m = ngx.re.match("hello, world",
                                           "(?<named>w+), (?<named>w+)",
                                           "D")
                    -- m["named"] == {"hello", "world"}
                  this option was first introduced in the v0.7.14 release.
                  this option requires at least PCRE 8.12.
    
    i             case insensitive mode (similar to Perl's /i modifier)
    
    j             enable PCRE JIT compilation, this requires PCRE 8.21+ which
                  must be built with the --enable-jit option. for optimum performance,
                  this option should always be used together with the 'o' option.
                  first introduced in ngx_lua v0.3.1rc30.
    
    J             enable the PCRE Javascript compatible mode. this option was
                  first introduced in the v0.7.14 release. this option requires
                  at least PCRE 8.12.
    
    m             multi-line mode (similar to Perl's /m modifier)
    
    o             compile-once mode (similar to Perl's /o modifier),
                  to enable the worker-process-level compiled-regex cache
    
    s             single-line mode (similar to Perl's /s modifier)
    
    u             UTF-8 mode. this requires PCRE to be built with
                  the --enable-utf8 option or else a Lua exception will be thrown.
    
    U             similar to "u" but disables PCRE's UTF-8 validity check on
                  the subject string. first introduced in ngx_lua v0.8.1.
    
    x             extended mode (similar to Perl's /x modifier)
    
  • 相关阅读:
    按比例缩放图片
    Centos8中安装并配置VDO来优化存储空间
    如何使用wipefs命令擦除磁盘上的签名
    cpufetch – 查询cpu架构信息的工具
    告别App,数字人民币钱包来了
    微软拿掉“测试版”的头衔,正式推出Windows 11 PC健康检查工具
    Find命令查找最近几天修改的文件
    Linux中source命令的使用方式
    稍微停顿,在思考一下。
    旺旺协议分析相关资料
  • 原文地址:https://www.cnblogs.com/xiangnan/p/6134783.html
Copyright © 2011-2022 走看看