如何使用Regex匹配特定路径下的文件,但不匹配特定扩展名

时间:2012-11-08 15:44:31

标签: regex apache nginx

例如,要匹配路径common下的所有文件(不是jpg,png,gif),例如

匹配

/common/foo.php
/common/foo.doc

不匹配:

/common/foo.jpg
/common/foo.gif
/foo

目前我正在使用:

\/common\/.*^(?:jpg|png|gif)$ 

2 个答案:

答案 0 :(得分:1)

负面观察将接近您当前的尝试:

\/common\/.*(?<!\.jpg|\.png|\.gif)$

这匹配以“/ common /”开头的所有内容,但不以“.jpg”,“。png”或“.gif”结尾。

Demo

答案 1 :(得分:0)

location /common/ {
    # here configuration for not jpg, png, gif

    location ~ \.(?:png|gif|jpg)$ {
        # here configuration for jpg, png, gif
    }
}