我想不出一种方法来获得所有可能的比赛。对于最基本的示例,我有以下内容:
"bbb".match(/bb/g);
//returns ["bb"]
但我希望它返回,["bb","bb"]
因为bb
与前两个b匹配,然后又与最后2 b匹配
在此示例中,可能的匹配是相同的,但不必例如:
"abab".match(/(.{1}).{1}\1/g);
//returns ["aba"]
我再次在这里希望 ["aba","bab"]
有没有办法做到这一点?
找到的所有匹配项match(/.../g)
都不会重叠:找到匹配项后,regexp引擎将从匹配结束处继续。
如果要使用此机制,则不能使用完全匹配。但您可以利用前瞻性和组以及迭代功能。例如,这将起作用:
re = /bb/g;
var results = [];
while (matches = re.exec("bbb")) {
results.push(matches);
re.lastIndex -= matches[0].length - 1;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句