与某些扩展名不匹配的正则表达式模式?


问题内容

我写了这个图案

^.*\.(?!jpg$|png$).+$

但是有一个问题-该模式与file.name.jpg(2个点)匹配

它在filename.jpg上正确运行(不匹配)。我试图找出如何使其不匹配任何.jpg文件的方法,即使文件名中包含2个或多个点。我尝试使用后面看的方法,但是python抱怨没有使用固定宽度(我不确定这是什么意思,但是文件名是可变长度的。)


问题答案:

这应该工作: ^.*\.(?!jpg$|png$)[^.]+$