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
像一个符咒一样否定两个华兹华语。。谢谢:)