gulp-replace 0.5.4
Current via gulp and rev:
<link rel="stylesheet" href="assets/styles/app-3c224ff086.css">
Goal:
<link rel="stylesheet" href="assets/styles/app-3c224ff086.css" media="screen">
Result:
<link rel="stylesheet" href="$1" media="screen">
Initial test was: https://regex101.com/r/miM7TN/1 . I might have linked the test with a capture group of $0, but in my project I am using capture group 1.
In my gulp task the following is added:
var regex = /\"assets\/styles\/app-+.*\"/;
var subst = `$1 media="screen"`;
.pipe(replace(regex, subst))
My string, to include start and end quotes, is being found. Instead of a capture group I am getting a literal $1. How do I get the actual value of the capture group? The gulp-replace documentation shows a replace value '$1foo'. Similar questions on SO show '$1' and "$1", and I am not yet seeing the difference to my situation. I've tried back-ticks, single quotes, and double quotes.
The $1
backreference refers to a capturing group with ID 1, the text captured with the first (...)
in your pattern.
You must use
var regex = /("assets\/styles\/app-+.*")/;
for $1
to "work" the same way as $&
(backreference to the whole match value).