gpt4 book ai didi

javascript - 如何突出显示任意数量的(可能重复的)As,然后是非贪婪匹配器,然后是任意数量的 Bs 等(没有不合理的限制)?

转载 作者:行者123 更新时间:2023-11-29 21:14:46 25 4
gpt4 key购买 nike

下面的示例是我想要的突出显示类型的演示(对于 "a""b""c"“d”):

var reg = new RegExp("(.*?)([a]{1,})(.*?)([b]{1,})(.*?)([c]{1,})(.*?)([d]{1,})(.*?)", "gi");
var txt = "OK, abacd, abcdt, yaaaxxbyycccczzddddg0011".replace(reg,
'$1<mark>$2</mark>$3<mark>$4</mark>$5<mark>$6</mark>$7<mark>$8</mark>$9');
document.getElementById("test").innerHTML = txt;
<body>
<div id="test"></div>
</body>

这里的问题显然是 $nn=9 的限制。但是,如果我想对超过四个字符执行此操作(即没有不合理 限制)怎么办?如何解决?

最佳答案

尝试使用 function as a parameterreplace()

这更像是@WiktorStribiżew提到的动态模式

var reg = new RegExp(["a", "b", "c", "d"].map(a => "([" + a + "]{1,})(.*?)").reduce((a, i) => a + i, "(.*?)"), "gi");
var txt1 = "OK, abacd, abcdt, yaaaxxbyycccczzddddg0011"
.replace(reg, (m, ...p) => {
p.pop();//pop string
p.pop();//pop offset
return p.reduce((a, i, ix) => a + (ix % 2 ? "<mark>" + i + '</mark>' : i), '')
});

var txt = "OK, abacd, abcdt, yaaaxxbyycccczzddddg0011"
.replace(reg, (m, ...p) => {
p.pop();
p.pop();
return "<br><br>-match-" + m + p.reduce((a, i, ix) => a + "<br>-substring-" + (ix % 2 ? i : "-h-" + i), '')
});
document.getElementById("test").innerHTML = txt1 + txt;
<body>
<div id="test"></div>
</body>

关于javascript - 如何突出显示任意数量的(可能重复的)As,然后是非贪婪匹配器,然后是任意数量的 Bs 等(没有不合理的限制)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39889675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com