正则表达式在捕获组后替换为数字?

Regex replace with number after capture group?

我有这样的正则表达式模式:

([0-9]*)xyz

我希望这样替换:

xyz

问题是 是一个捕获组,而 0 只是我想放入替换中的一个数字。但是正则表达式认为我要求捕获组 而不是 然后在它之后是一个零。

如何引用捕获组并在其后紧跟着一个数字?

在这种情况下使用 JavaScript。

UPDATE 如下所述,我的代码运行良好。我使用的正则表达式测试器不小心设置为 PCRE 而不是 JavaScript.

你的代码 work 除非我遗漏了什么:

var str = "3xyz";
var str1 = str.replace(/([0-9]*)xyz/, "xyz");
alert(str1); // alerts 30xyz

您的代码确实可以正常工作。在 JavaScript 中,正则表达式替换语法 </code> 引用捕获组 <code>10。但是,如果组 10 没有被设置,组 1 被插入然后文字 0 之后。

var r = '123xyz'.replace(/([0-9]*)xyz/, 'xyz');
console.log(r); //=> "1230xyz"