这两个 Nginx 正则表达式模式有什么区别?

What is the difference between these two Nginx regex patterns?

以下两个 Nginx 正则表达式模式有什么区别?

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

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

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

我打算做的就是匹配 /v1/path1/*/path3 中的所有路径。我测试了两者,它们似乎都有效。

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

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

第一种情况,</code>等于<code>bar/path3,因为捕获是贪心的,吸收了第一个"path3",因为还有一个满足正则表达式的

第二种情况,</code>等于<code>bar,因为捕获不贪婪,吸收最小量到文本以满足正则表达式。