正则表达式在捕获组后替换为数字?
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"
我有这样的正则表达式模式:
([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"