gulp-replace 0.5.4
当前通过Gulp和Rev:
<link rel="stylesheet" href="assets/styles/app-3c224ff086.css">
目标:
<link rel="stylesheet" href="assets/styles/app-3c224ff086.css" media="screen">
结果:
<link rel="stylesheet" href="$1" media="screen">
初始测试为:https://regex101.com/r/mim7tn/1。我可能已经将测试与$ 0的捕获组联系起来,但是在我的项目中,我使用的是捕获组1。
在我的Gulp任务中,添加了以下内容:
var regex = /"assets/styles/app-+.*"/;
var subst = `$1 media="screen"`;
.pipe(replace(regex, subst))
我的字符串(包括开始和终点)正在找到。而不是一个捕获组,我获得了1美元的字面意思。如何获得捕获组的实际价值?Gulp-Replace文档显示了一个替换值" $ 1foo"。关于SO显示" $ 1"one_answers" $ 1"的类似问题,我还没有看到与我的情况的不同。我尝试了背键,单引号和双引号。
$1
backReference是指带有ID 1的捕获组,图案中使用第一个(...)
捕获的文本。
您必须使用
var regex = /("assets/styles/app-+.*")/;
对于$1
,以与$&
相同的方式"工作"(向后注册到整个匹配值)。
您可以将回调用作Gulp-Replace中的第二个参数。该功能是在每个捕获组上循环的。这是一个示例,我将骆驼变量转换为CSS符号
.pipe(replace(/([A-Z])/g, function(match){
return '-'+match.toLowerCase()
}))
{camelCase1: 1, camelCase2: 2}
变为骆驼-case1和case-case2