我想省略.spec.js文件并删除.js文件。我有这个,但它不起作用:
(?!.*\.spec\.js$)*.js')
有什么建议吗?
答案 0 :(得分:2)
您可以使用positive lookahead
查看.spec
之前是否存在.js
并相应地过滤掉它。此正则表达式仅匹配.exec.js
个文件。
正则表达式: .*?(?=\.spec).*?\.js
<强>解释强>
.*?
与文件名匹配。
(?=\.spec)
存在, .spec
会消极地回顾。如果是,则将丢弃整个匹配。
.*?\.js
最后匹配文件名和.js
扩展名的其余部分。
<强> Regex101 Demo 强>
或,不使用lookahead
。
正则表达式: .*?(\.spec).js
<强>解释强>
.*?
匹配初始文件名。
(\.spec)
匹配.spec
(如果有)。
.js
分机。
<强> Regex101 Demo 强>
答案 1 :(得分:1)
我不这样就可以获得所有的* .js文件,同时在没有lookbehind的单个正则表达式中省略* .spec.js文件。或者你可以使用两个调用endsWith():
filename.endsWith('.js') && !filename.endsWith('.spec.js')