所有以后缀结尾的文件,不使用否定

Ave*_*ger 5 regex regex-negation

我正在尝试匹配除以.bmp结尾的所有文件.

由于一些限制,我不能使用否定(?:,!:)和引用(\ 1,...).

我做了一个表达式,它适用于大多数字符串:

^\w+\.([^b].*|b|b[^m].*|bm|bm[^p].*|bmp.+)$
Run Code Online (Sandbox Code Playgroud)

它匹配所有不以.bmp结尾的东西 - 包括test.txt,test.bmp.txt等.但不可取的是,它确实允许test.bi.bmp.

有关如何改进正则表达式的任何想法,以便它只匹配以.bmp结尾的文件?

Ben*_*oit 5

为什么不:

^.*[^p]$|^.*[^m]p$|^.*[^b]mp$|^.*[^.]bmp$
Run Code Online (Sandbox Code Playgroud)

http://regexr.com?31vg7

另一种选择^.*([^p]|[^m]p|[^b]mp|[^.]bmp)$(更短).