Подстроки повторяющихся символов фиксированной длины

Рейтинг: 0Ответов: 1Опубликовано: 14.03.2023

В логах строки вида XXXXxxxYYyyyyZZZZzzW, т.е. ряд повторяющихся символов в разном регистре. Нужно регуляркой захватить из каждого набора повторов подстроки фиксированной длины: было XXXXxxxYYyyyyZZZZzzW и стало ['XXX', 'YYy', 'ZZZ', 'W']. Иначе говоря, если символов больше — убрать лишние, в протвном случае оставить как есть. Знаний регулярок хвалило лишь на /(.)\1{2}|\S/gi, но match захватывает много лишнего. Подскажите, пожалуйста, как быть в данном случае, что исправить? В смысле, чтобы было решено всё регуляркой именно, а не через reduce, map и прочее?

Ответы

▲ 0Принят

Вариант с негативным просмотром вперед. Особенность: выражение захватывает до трех последних символов в серии.

/(.)\1{0,2}(?!\1)/gmi

Демо