我正在编辑大型 html 文件,需要插入 <span id="%d"></span>
(其中 %d
是匹配的数量)进入 <p></p>
标签。
示例输入:
<p>stack</p>
<p>overflow</p>
期望的输出:
<p><span class="class" id="f=1">stack</p>
<p><span class="class" id="f=2">overflow</p>
匹配<p></p>
我使用以下正则表达式来匹配结果:
<p>(.*?)<\/p>
之后,匹配替换为:
<p><span class="class" id="f=???">$1</span></p>
是否可以引用模式匹配的数量? (“f=???”)
最佳答案
RegEx 无法计算匹配项,因此您必须在 JavaScript 中完成该部分。
var input = "<p>stack</p>\n<p>overflow</p>"
const regex = /<p>(.*?)<\/p>/g;
var count = 0;
var result = input.replace(regex, function(match, contents) {
++count;
return '<p><span class="class" id="f=' + count + '">' + contents + '</span></p>';
});
console.log(result);
console.log(result)
会产生:
<p><span class="class" id="f=1">stack</span></p>
<p><span class="class" id="f=2">overflow</span></p>
关于javascript - 正则表达式 : reference to matching result count from pattern,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42829133/