假设我有琴弦
"12345"
如果我.match(/\d{3}/g)只有一场比赛,"123"。我为什么不明白[ "123", "234", "345" ]?
.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处理凹凸不平的问题。
.
\d
此代码改编自此答案。我本来会将此问题标记为该问题的重复部分,但是OP接受了另一个较小的答案。