Регулярное выражение: найти разделители на расстоянии более N символов друг от друга

Я хочу разделить предложения запятыми, но только если между последним совпадением и следующей запятой более 36 символов.

Итак, ввод:

Привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир.

Вывод:

Привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир,

Привет, мир, привет, мир, привет, мир, привет, мир, привет, мир, привет, мир,

Привет, мир, привет, мир, привет, мир.

Используя регулярное выражение, (.){36,}(, ) найдет блок, который является началом предложения до последней совпадающей строки. (, )(.){36,}(, ) найдет длинную среднюю часть абзаца. Но я хочу по очереди найти каждое подходящее жало в абзаце.

Может ли регулярное выражение сделать это? Я использую вкус N++.


person Kapitano    schedule 20.04.2016    source источник
comment
Попробуйте (.{37,}?), и замените на $1\n (демонстрация)   -  person Wiktor Stribiżew    schedule 20.04.2016


Ответы (1)


Вместо разделения вы можете выполнить сопоставление, используя:

(.{36,}?), *

(.{36,}?) лениво соответствует 36 или более символам. Вы можете сохранить захваченную группу № 1 в своем массиве.

Демо RegEx

person anubhava    schedule 20.04.2016