Вы можете запустить следующее регулярное выражение для строки, которую вы хотите сопоставить:
(?=(.{5}))
заменить на (для каждого совпадения)
$1|
https://regex101.com/r/dDJYh1/1
Результатом является регулярное выражение, которое вы можете использовать для фактических данных, которые вы ищете.(butte|utter|tterf|terfl|erfly
для butterfly
)
Я только что заметил, что regex101 не показывает разбивку ниже, которую он показывает справа для групп захвата.Группы захвата на справа являются правильными.Я не совсем уверен, как js разбивает это, так что, надеюсь, кто-то еще может дать вам более полный ответ или отредактировать мой.
Я действительно не знаю js, но это кажетсясделать трюк:
var re = /(.)(?=(.{4}))/g;
var s = "butterfly";
var m = re.exec(s);
do {
print(m[1]+m[2]);
m = re.exec(s);
}while(m)