Webpack配置需求:匹配含/不含rgo1的.html文件名正则
适配Webpack的HTML文件名匹配正则方案
嘿,我来帮你搞定这两个在Webpack配置里要用的正则表达式!先直接上可用方案,再给你拆解下逻辑~
1. 匹配所有包含rgo1且以.html结尾的文件名
- 正则表达式(字面量形式):
/rgo1.*\.html$/ - 逻辑拆解:
rgo1:精准匹配目标字符串.*:匹配rgo1和.html之间的任意字符(非换行)\.html$:强制文件名以.html结尾,避免匹配到类似rgo1.html.txt这类不符合要求的文件
2. 匹配所有不包含rgo1但以.html结尾的文件名
你之前尝试的几个正则没成功是因为逻辑没踩对——比如[^rgo1].*\.html$/gm其实是排除单个字符r/g/o/1,不是排除整个rgo1字符串,自然达不到预期。而你找到的这个方案是完全可行的:
- 正则表达式(字面量形式):
/^((?!rgo1).)*\.html$/ - 逻辑拆解:
(?!rgo1):负向前瞻断言,确保当前位置之后不会出现rgo1这个完整字符串((?!rgo1).)*:让整个文件名的每一个位置都触发这个断言,保证整个文件里完全没有rgo1\.html$:同样强制文件名以.html结尾
小提示
在Webpack配置中使用时,如果是用字符串形式定义正则,记得转义反斜杠,比如写成:
"^((?!rgo1).)*\\.html$"
如果是用正则字面量,直接写上面的/^((?!rgo1).)*\.html$/就可以啦。
内容的提问来源于stack exchange,提问作者Thierry Blais
相关产品推荐
相关产品推荐

