【问题标题】:Javascript Regex negative lookbehind AlternativeJavascript 正则表达式负后视替代
【发布时间】:2018-02-10 23:05:17
【问题描述】:
看起来这不是关于后视的第一个问题,但我没有找到答案。
Javascript 没有(正面|负面)后视请求。
我需要一个匹配 *.scss 文件名的正则表达式,但与 *.h.scss 之类的名称不匹配。
后视请求看起来像:
/(?<!(\.h))\.scss$/
如何在 javascript 中做到这一点?
我需要这个用于 webpack 规则“test”参数的正则表达式,所以只需要 javascript 正则表达式。
【问题讨论】:
标签:
javascript
regex
webpack
【解决方案1】:
你可以使用
/^(?!.*\.h\.scss$).*\.scss$/
见regex demo
详情
-
^ - 字符串锚的开始
-
(?!.*\.h\.scss$) - 如果字符串以 .h.scss 结尾,则否定 lookahead 匹配失败
-
.* - 尽可能多的任何 0+ 个字符
-
\.scss - 一个.scss 子字符串...
-
$ - 字符串结束。
【解决方案2】:
您可以列出与.h 不匹配的所有可能的子模式并构建替代:
/(?:[^.].|\.[^h]|^.?)\.scss$/