如何匹配不以正则表达式结尾的文件

How to match files end not with regex

我正在尝试过滤所有不以 mp3wv.
结尾的文件 我试过使用类似这样的东西 ^.*(?<![mp3|wv])$ 但这个表达式不起作用。
请帮助创建有效的表达式。

您可以改用 Negative Lookahead。

^(?!.*(?:mp3|wv)$).*

因为回顾是一个零宽度断言,你可以这样写:

^.*(?<!mp3)(?<!wv)$

或更好($ 也是零宽度断言):

^.*$(?<!mp3)(?<!wv)

如果您的正则表达式风格允许(PCRE,Java),您可以使用替代:

^.*$(?<!mp3|wv)

注意:如果您的目标只是了解字符串是否以 "vw" 或 "mp3" 结尾,您可以测试 (?:mp3|wv)$ 是否为假。