javascript - 如何使用带有 gulp-replace 的捕获组?

标签 javascript regex gulp-replace

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”和“$1”,我还没有看到我的情况有什么不同。我试过反引号、单引号和双引号。

最佳答案

$1 反向引用引用 ID 为 1 的捕获组,即使用模式中的第一个 (...) 捕获的文本。

你必须使用

 var regex = /("assets\/styles\/app-+.*")/;

$1 以与 $& 相同的方式“工作”(对整个匹配值的反向引用)。

关于javascript - 如何使用带有 gulp-replace 的捕获组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42663767/

相关文章:

javascript - 数据表导出按钮未显示,

java - 如果不使用validation.excludeMethods,则无法在同一操作类下调用两个不同的方法

ruby - 如何在 Ruby 正则表达式中使用 AND

javascript - gulp 替换中的变量值

php - 如何确保变量是从 PHP 中的特定 JavaScript 页面发布的

javascript - 如何在 history.pushstate 中使用第一个参数

regex - 使用带有正则表达式的 Notepad++ 将字符串(带有可变文件名)替换为不同的字符串

javascript - 在 gulp 中对正则表达式捕获组进行计算

javascript - 如何只吞掉正则表达式替换第一个匹配项?

javascript - 使用 Angular 13 使用 js-xlsx 读取本地 Excel 文件?