Lua脚本匹配多个单词



我第一次尝试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*)

相关内容

最新更新