Множественное вхождение в регулярном выражении

#regex

Вопрос:

Предположим, что следующая последовательность: 0000000

Я хочу найти все 0000 в приведенной выше последовательности, если я использую только /0000/ регулярное выражение, оно соответствует только первому, однако в приведенной выше последовательности есть 4 вхождения 0000

Как я могу найти их все по регулярному выражению?

Тай!

Ответ №1:

Вы можете использовать утверждение нулевой ширины, такое как положительный внешний вид, и записывать результаты в группу, чтобы результат не был использован после совпадения:

 /(?=(0000))/g
 

Смотрите тестовый пример

Пример использования JavaScript:

 const text = '0000000';

const regex = /(?=(0000))/g;

const result = [...text.matchAll(regex)].map(e => e[1]);

console.log(result);