我需要使用正则表达式匹配 webpack 规则的文件扩展名。我想制定两个单独的规则来定位 svg 文件:*.svg
和 *.icon.svg
。
这些规则必须是相互排斥的。通过测试 /\.icon.svg$/
可以轻松捕获 *.icon.svg 场景。但是捕获所有 .svg
扩展名(不包括以 .icon.svg
结尾的文件)的表达式应该是什么?
.icon.svg
的规则示例
config.module.rules.push({
test: /\.svg$/,
loader: 'vue-svg-loader'
})
最佳答案
匹配除 .icon.svg
之外的所有 .svg
文件
/(?!.*\.icon\.svg$)^.+\.svg$/
仅匹配.icon.svg
:
/\.icon\.svg$/
<小时/>
所以,这看起来像:
{
// match all .svg files EXCEPT .icon.svg
test: /(?!.*\.icon\.svg$)^.+\.svg$/,
loader: 'specific-loader-name'
},
{
// Match only .icon.svg files
test: /\.icon\.svg$/,
loader: 'different-loader'
},
关于javascript 正则表达式匹配文件扩展名但不包括前缀扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49368103/