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

Javascript 正则表达式匹配扩展名,但排除特定文件,javascript,regex,Javascript,Regex,我在webpack.config中,需要包含扩展名以匹配特定的文件类型,但需要排除特定的文件。我在谷歌上搜索了一下,但没有找到一个完美的解决方案 我所拥有的:/\.(?:css | less)$/->匹配所有具有.less或.css的文件,但我想在这里添加“不仅->测试.something.strict.less”/.(?:css | less |!test.less)$/其中test.something是一个扩展名为.less的文件名,并且只排除测试.something 但这不起作用,它匹配.

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

我所拥有的:
/\.(?:css | less)$/
->匹配所有具有
.less或.css
的文件,但我想在这里添加“不仅->测试.something.strict.less”
/.(?:css | less |!test.less)$/
其中test.something是一个扩展名为
.less
的文件名,并且只排除测试.something


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

|!test.less
并不真正否定匹配
test.less
。它将完全匹配
之前
测试。较少

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

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


(?!test\.less$)
是一种消极的前瞻,如果文件名是
test..less

我不完全理解您的规范,它将断言失败。但根据你的信息@Rahul,你说得对。不过现在发布答案已经太迟了。☺☻@Rahul,你可以发布它,作为替代。@AshishMishra:你的新规范与以前的完全不同。我试过了,它可以->有没有可能将“test.less”改为“test.dark.less”?这里test.dark是一个扩展名为“.less”的文件名。当然,让我很快试试:)嗨,你的答案很好,我可以把
[^.]+
替换成像
dark
light
这样严格的词吗?你可以用
/^(?!test\.(?:light | dark)\.less$).+\.(?:css | less)$/m
像一个符咒一样否定两个华兹华语。。谢谢:)