0

是否有用于计算匹配组的正则表达式转义码?

比如更换:

foo
foo
foo

和:

foo x 3

搜索: ((foo)\n)+

替换: $2 x ?? \n

4

1 回答 1

0

我认为您不能仅基于正则表达式来做到这一点。这是 Javascript 中的一个示例:

var myText = "foo\nfoo\nfoo";
var line = myText.match(/(.+)(?=\r?\n\1$)/mg)[0];
var re = new RegExp(line + "\r?\n(?=" + line + "$)","mg");
myText = line + " x " + (myText.match(re).length + 1);

结果:

foo x 3

如果您想对多个值执行此操作,例如“foo\nfoo\nfoo\nbar\nbar”,那么我建议您先将字符串拆分为一个数组。

于 2013-05-30T19:50:49.900 回答