我有这样的正则表达式:
([0-9]*)xyz
我希望做这样的替换:
$10xyz
问题是$1
是一个捕获组,而0
只是我想要替换的数字。但是正则表达式认为我要求捕获组$10
而不是$1
,之后是零。
如何引用捕获组并立即使用数字进行跟踪?
在这种情况下使用JavaScript。
更新如下所述,我的代码运行正常。我使用的正则表达式测试程序被意外设置为PCRE而不是JavaScript。
答案 0 :(得分:4)
你的代码确实很好用。在JavaScript中,正则表达式替换语法$10
引用捕获组10
。但是,如果尚未设置组10
,则会在之后插入组1
,然后插入文字 0
。
var r = '123xyz'.replace(/([0-9]*)xyz/, '$10xyz');
console.log(r); //=> "1230xyz"
答案 1 :(得分:1)
除非我遗漏了某些内容,否则您的代码会work:
var str = "3xyz";
var str1 = str.replace(/([0-9]*)xyz/, "$10xyz");
alert(str1); // alerts 30xyz