将字符串分解为一系列子字符串



>我正在尝试将任何字符串拆分为 3 个字符的子字符串列表。

例如:abcdefgh拆分为:

abc , bcd , cde , def , efg , fgh

所以我写了以下正则表达式:

"abcd".match(/.{1,3}/g);

但它输出为abc , d.如何实现上述输出?

由于不能有重叠的匹配,因此您需要使用禁止正则表达式引擎前进和使用字符串的东西

答案是环顾四周,具体来说:积极的展望。它不会消耗字符串,并且可以在内部包含 captuirng 组,然后您可以访问该组。

使用此模式:(?=([a-z]{3})).它断言,当前位置后面是三个小写字母。由于它被包裹在前瞻中,它不会落后于找到的三个字母。

结果,您将获得 6 个匹配项,这些匹配项将为空,每个匹配项将包含捕获组,其中将包含三个字母。

演示

最新更新