Предположим, у вас есть строка, которую вы хотите разбить на куски, имеющие максимальный размер x символов.Если вы игнорируете новые строки, подходящим регулярным выражением будет следующее. {1, x}
Проблема, с которой я столкнулся, заключается в том, что я хочу сохранить вместе специальные символы URI, такие как% 20.
Пример:
Привет% 20world% 20how% 20are% 20you% 20today
Делая «тупой» чанк с 5-ю символьными чанками, вы получаете:% 20wo
rld% 2
0how%
20are
% 20yo
u% 20t
oday
Чего я хочу добиться, это:
Hello
% 20wo
rld
% 20ho
w% 20a
re% 20
you
% 20to
day
Is thisдаже возможно только с регулярными выражениями?В настоящее время у меня есть рабочее решение с циклом, который проходит через каждый символ и заполняет ведро.Если корзина заполнена, она добавляет свое содержимое в массив кусков и очищает его.Тем не менее, он также проверяет, является ли текущий символ% и может ли корзина содержать еще 3 символа (% плюс две шестнадцатеричные цифры).Если это возможно, хорошо, иначе это подтолкнет содержимое сегмента в массиве чанков и начнется с нового фрагмента.