我第一次尝试Lua脚本时,我想在字符串(用户代理(上匹配多个子字符串,以在匹配时排除它们。
模式字符串是用户代理模式,多个字符串是谷歌、safari和边缘
local m, err = ngx.re.match(ngx.req.get_headers()['User-Agent'], "(*google*|*safari*|*edge*)", "io")
if not m
then
..
end
问题用户代理包含谷歌,safari,边缘字符串仍然存在于我的请求中。
例如用户代理:
Mozilla/5.0 (**google**; CPU iPhone OS 14_4 like Mac OS X)
Mozilla/5.0 (**safari**; CPU iPhone OS 15_1 like Mac OS X)
Timescode_RESTClient **edge** alpha
我想把他们排除在外。
ngx.re.match
使用PCRE正则表达式,其中*
大致表示";"之前的任何内容的零次或更多次重复";,所以你必须逃离它:(*google*|*safari*|*edge*)