JavaScript .spec 文件的正则表达式先行
JavaScript Regex Lookahead for .spec Files
我想省略 .spec.js 文件并只删除 .js 文件。我有这个,但它不起作用:
(?!.*\.spec\.js$)*.js')
有什么建议吗?
您可以使用 positive lookahead
查看 .spec
是否出现在 .js
之前并相应地过滤掉它。此正则表达式将仅匹配 .exec.js
个文件。
正则表达式: .*?(?=\.spec).*?\.js
解释:
.*?
匹配文件名。
(?=\.spec)
如果有.spec
存在,会消极地往后看。如果是,则整个匹配将被丢弃。
.*?\.js
匹配文件名的其余部分和末尾的 .js
扩展名。
或者 不使用 lookahead
。
正则表达式: .*?(\.spec).js
解释:
.*?
匹配初始文件名。
(\.spec)
匹配 .spec
(如果存在)。
.js
分机。
我不知道这有可能在没有后视的情况下在单个正则表达式中省略 *.spec.js 文件的同时获取所有 *.js 文件。或者,您可以只调用两次 endsWith():
filename.endsWith('.js') && !filename.endsWith('.spec.js')
我想省略 .spec.js 文件并只删除 .js 文件。我有这个,但它不起作用:
(?!.*\.spec\.js$)*.js')
有什么建议吗?
您可以使用 positive lookahead
查看 .spec
是否出现在 .js
之前并相应地过滤掉它。此正则表达式将仅匹配 .exec.js
个文件。
正则表达式: .*?(?=\.spec).*?\.js
解释:
.*?
匹配文件名。(?=\.spec)
如果有.spec
存在,会消极地往后看。如果是,则整个匹配将被丢弃。.*?\.js
匹配文件名的其余部分和末尾的.js
扩展名。
或者 不使用 lookahead
。
正则表达式: .*?(\.spec).js
解释:
.*?
匹配初始文件名。(\.spec)
匹配.spec
(如果存在)。.js
分机。
我不知道这有可能在没有后视的情况下在单个正则表达式中省略 *.spec.js 文件的同时获取所有 *.js 文件。或者,您可以只调用两次 endsWith():
filename.endsWith('.js') && !filename.endsWith('.spec.js')