如何在正则表达式中创建一个具有匹配变量和整数的替代字符串?
这是我要解决的两个示例。
1)... by,Cheese / Night%20Out-Now,2 ...
2)... by,Cheese / 2 ...
这是我的正则表达式尝试
var re = /Cheese\/([\-\%_0-9a-z]+)?(,)?[0-9]+/i;
var subst = 'Cheese/$1$25';
var str1 = '...by,Cheese/Night%20Out-Now,2...';
var str2 = '...by,Cheese/2...';
var result1 = str1.replace(re, subst);
var result2 = str2.replace(re, subst);
这是我想要的结果
1)... by,Cheese / Night%20Out-Now,5 ...
2)...作者,Cheese / 5 ...
沙盒
https://regex101.com/r/jT1tY6/3
最佳答案
它似乎已经起作用。您可以在此处使用一个可选组来修改正则表达式。
var re = /(Cheese\/(?:[\w%-]+,)?)[0-9]+/i
var subst = '$15';