匹配除两个(或更多)以外的所有 *.js 文件

Match all *.js files except for two (or more)

我正在寻找注册。表达式匹配我的 /lib 目录中的所有 *.js 文件,除了(例如)jquery.jsrequire.js.

^(\/lib/)([^\/]*)$

上面只选择了 lib 目录中的所有 .js 文件,但我不确定在哪里定义排除部分。

/lib/jquery.js
/lib/handlebars.sj
/librequire.js
/lib.test.js

试试这个正则表达式*(如果我理解正确的话):

\/lib\/(?!jquery|require).*\.js

它匹配 /lib/ 目录中的所有 .js 文件,除了 jquery.jsrequire.js.

这叫做negative lookahead,当你想匹配而不是后跟其他东西时使用它。

请注意,此正则表达式不匹配任何以 jqueryrequire 开头(在 /lib/ 之后)的内容,如果您愿意,可以轻松地绑定想要的词。

* 我认为正则表达式不是解决此问题的最佳方法