nginx.conf

pcre_jit on;

1)ngx.re.find

from, to, err = ngx.re.find(subject, regex, options?, ctx?, nth?)
options可选值:i是忽略大小写,o是仅编译一次,m是多行模式,j是启用pcre jit编译。

local from, to, err = ngx.re.find("hello world", [[hello]], "ijo")
if from then
    ngx.say("found")
else
    ngx.say("not found")
end

2)ngx.re.match

只有第一次匹配的结果被返回,如果没有匹配,则返回nil;或者匹配过程中出现错误时,
也会返回nil,此时错误信息会被保存在err中。

当匹配的字符串找到时,一个Lua table captures会被返回,
captures[0]中保存的就是匹配到的字串,
captures[1]保存的是用括号括起来的第一个子模式(捕获分组)的结果,
captures[2]保存的是第二个子模式(捕获分组)的结果,依次类似。

local m, err = ngx.re.match(ngx.var.http_user_agent, [[python-request|python3]], "ijo")
if m then
    ngx.say("match: ", m[0])
else
    if err then
        ngx.say("match error: ", err)
        return
    end
    ngx.say("not matched")
end

3)ngx.re.sub()
用来查找匹配模式的串,并将使用替换串把其替换掉,但并不修改原字符串,而是返回一个修改后的字符串的副本。
函数有目标串,模式串,替换串三个参数。

标签: nginx

添加新评论