javascript 正则表达式匹配文件扩展名但不包括前缀扩展名

标签 javascript regex webpack-loader

我需要使用正则表达式匹配 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/

相关文章:

javascript - 使用网络蓝牙从 BLE 设备读取数据?

javascript - 改变 Node.js 中动态加载模块的全局范围

javascript - 如何选择具有Thymeleaf属性的元素?

javascript - 如何在 Typescript 中导入自定义文件类型

webpack 问题 "downloadable font rejected by sanitizer"或 "failed to decode downloaded font"

javascript - {} == 在 javascript 中是否为真?

php - 如何使用 preg_match() 获得最短而不是最长的正则表达式匹配

c - 如何通过正则表达式从名称=值格式的字符串中提取名称

regex - dart 正则表达式匹配并从中获取一些信息

reactjs - Autodesk React Forge 空项目中存在 forge-dataviz-iot-react-components 问题