匹配的正则表达式,除了两个单词。在Nginx服务器中

时间:2017-02-27 10:36:57

标签: regex nginx

我正在尝试在Nginx中创建3个服务器

如果名称包含-testing-staging,则可以匹配所有内容。

使用server_name中的-testing匹配所有内容的一个。 一个与server_name中的-staging匹配的所有内容。

最后两个不是问题。那些都在工作。我只是在与第一个人挣扎。

这是我试过的正则表达式: ~^.*(?!(-testing)|(-staging))\.example\.lh$

https://regex101.com/r/m8vXsL/1(删除了代字号)

但它仍然匹配包含这些单词的server_names。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果nginx支持它(您在示例中选择了pcre,那么假设如此),只需插入<即可获得负面的后视。即

^.*(?<!(-testing)|(-staging))\.example\.lh$
     ^

Here at regex101