>我正在尝试将任何字符串拆分为 3 个字符的子字符串列表。
例如:abcdefgh
拆分为:
abc , bcd , cde , def , efg , fgh
所以我写了以下正则表达式:
"abcd".match(/.{1,3}/g);
但它输出为abc , d
.如何实现上述输出?
由于不能有重叠的匹配,因此您需要使用禁止正则表达式引擎前进和使用字符串的东西。
答案是环顾四周,具体来说:积极的展望。它不会消耗字符串,并且可以在内部包含 captuirng 组,然后您可以访问该组。
使用此模式:(?=([a-z]{3}))
.它断言,当前位置后面是三个小写字母。由于它被包裹在前瞻中,它不会落后于找到的三个字母。
结果,您将获得 6 个匹配项,这些匹配项将为空,但每个匹配项将包含捕获组,其中将包含三个字母。
演示