您不能单独使用正则表达式来实现这一点,但是您可以非常接近:
null
var pat = /(?=(\d{3}))\d/g;
var results = [];
var match;
while ( (match = pat.exec( '1234567' ) ) != null ) {
results.push( match[1] );
}
console.log(results);
带有全局标志正则表达式的正则表达式匹配并使用(=读入缓冲区并将其索引前进到当前匹配字符之后的位置)3位序列。因此,在“吃掉”
我认为在regex101.com使用的技术在这里也值得考虑:使用零宽度断言(带有捕获组的积极前瞻)来测试输入字符串内部的所有位置。每次测试后,
注意:它是在。NET(codeRegex.matches/code),Python(codeRe.findall/code),PHP(codePreg_match_all/code),Ruby(codeStringDepartScan/code>)中实现的技术,也可以在Java中使用。下面是一个使用
null
var re = /(?=(\d{3}))/g;
console.log( Array.from('12345'.matchAll(re), x => x[1]) );
当一个表达式匹配时,它通常会使用它匹配的字符。因此,在匹配的表达式