将字符串分成子字符串序列

时间:2018-09-13 16:25:38

标签: javascript regex

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

例如:abcdefgh分为:

abc , bcd , cde , def , efg , fgh

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

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

,但输出为abc , d。如何获得如上所述的输出?

1 个答案:

答案 0 :(得分:0)

由于不能存在重叠的匹配项,因此您需要使用 something 来禁止正则表达式引擎前进和使用该字符串。

答案是环顾四周,尤其是:积极的前瞻性。它不会消耗字符串,并且可以在内部包含captuirng组,然后您就可以访问它。

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

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

Demo