更快没有匹配 - 两个单独或一个|'ed组合正则表达式?

时间:2015-10-10 01:54:02

标签: regex performance optimization nginx pcre

在我对nginx location deny by file extension syntax的回答中,我考虑过两个独立的正则表达式 - 一个由$终止的一堆文件扩展名组成,另一个是/\.之类的文件名路径。 1}} - 在选择location元字符的帮助下,作为两个单独的|可能比加入的location \.(7z|bak|bz2|gz|rar|tar|zip)$ {return 403;} location /\. {return 403;} 更快。

nginx正在使用ngx_regex.c库进行正则表达式时,pcre的速度会更快吗?

两个表达式分开:

|

或者上面与location \.(7z|bak|bz2|gz|rar|tar|zip)$|/\. {return 403;}

连接在一起的那个
{{1}}

让我们对试图打入合法网站访问者的人持乐观态度 - 假设大多数输入路径与上述任何一种表达都不匹配。

哪种选择会导致更快的不匹配?

第一个表达式是否可以使用组合的表达式进行任何行尾优化?

0 个答案:

没有答案