这两种Nginx regex模式之间有什么区别?

时间:2020-02-05 09:44:36

标签: regex nginx nginx-location

以下两个Nginx regex模式有什么区别?

location ~* /v1/path1/(.*)/path3

location ~* /v1/path1/(.*?)/path3

区别在于正则表达式中的?

我要做的就是匹配/v1/path1/*/path3中的所有路径。我对它们都进行了测试,而且它们似乎都可以工作。

1 个答案:

答案 0 :(得分:0)

捕获的贪婪。两个正则表达式都将匹配相同的字符串,但是每种情况下的捕获都可能不同。

例如,字符串/foo/v1/path1/bar/path3/path3将匹配两个位置。

在第一种情况下,$1等于bar/path3,因为捕获是贪婪的,并且吸收了第一个“ path3”,因为还有一个满足正则表达式。

在第二种情况下,$1等于bar,因为捕获不是贪婪的,而是吸收文本的最小数量以满足正则表达式。