JavaScript如何用正则表达式匹配重叠的字符串?
假设我有琴弦
"12345"
如果我.match(/\d{3}/g)
只有一场比赛,"123"
。我为什么不明白[ "123", "234", "345" ]
?
回答:
您不能仅使用正则表达式来做到这一点,但是可以非常接近:
var pat = /(?=(\d{3}))\d/g;var results = [];
var match;
while ( (match = pat.exec( '1234567' ) ) != null ) {
results.push( match[1] );
}
console.log(results);
换句话说,您捕获了前行中的所有三个数字,然后返回并以常规方式匹配一个字符,只是为了提高匹配位置。你怎么消费这个角色都没有关系。.
效果一样好\d
。而且,如果您真的很喜欢冒险,可以只使用前瞻功能,并让JavaScript处理凹凸不平的问题。
此代码改编自此答案。我本来会将此问题标记为该问题的重复部分,但是OP接受了另一个较小的答案。
以上是 JavaScript如何用正则表达式匹配重叠的字符串? 的全部内容, 来源链接: utcz.com/qa/413823.html