在 OpenResty Lua 中如何获取正则表达式匹配的位置?

我应该如何在 OpenResty / Nginx Lua 模块中获取正则表达式位置所匹配的部分?

例如,我想在 Lua 中使用以下情况中的 $1

location ~ ^/example/([0-9]+)/ {
  content_by_lua_block {
    -- What to use for \1 ?
    ngx.say("Code: " .. (ngx.var.1 + 1))
  }
}

预期的行为是在访问 /example/1234/ 时获得 Code: 1235

点赞
用户9783845
用户9783845

从 Lua 参考手册:

语法var.Name仅仅是var["Name"]的语法糖。

然而,它只适用于字符串键。

从 OpenResty 手册:

Nginx 正则表达式组捕获变量$1$2$3等,同样可以通过写ngx.var[1]ngx.var[2]ngx.var[3]等方式读取。

2020-11-13 11:39:08