正则表达式匹配扩展名但排除特定文件

时间:2017-05-22 19:45:36

标签: javascript regex

我在webpack.config我需要包含扩展名以匹配特定文件类型,但我需要排除特定文件。我搜索了它,但没有找到完美的解决方案。

我拥有的内容:/\.(?:css|less)$/ - >匹配所有.less OR .css的文件,但在这里我想添加“不仅仅是> test.something_strict.less /\.(?:css|less|!test.less)$/其中 test.something_strict 是扩展名为.less的文件名,仅排除 test.something_strict

但这不起作用,匹配.less or .css并通过测试。

1 个答案:

答案 0 :(得分:4)

|!test.less并没有真正否定匹配test.less。它会在!之前与test.less字面匹配。

您可以使用此正则表达式:

/^(?!test\.[^.]+\.less$).+\.(?:css|less)$/m

RegEx Demo

(?!test\.less$)是一个负面预测,如果文件名为test.<anything>.less,它将断言失败。