Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Добавить внутрь строки нужно количество пробелов


Автор: Suppir 9.5.2010, 16:24
Имеем строку:
$line = '     Об экспертной оценке предложений поставщиков медицинской продукции'

Необходимо с помощью регулярного выражения добавить в строку столько пробелов, чтобы ее длина была равна 80.

При этом:
1) нельзя добавлять пробелы в начало или конец строки
2) нужно, чтобы пробелы были распределены в строке более-менее равномерно. 


Т.е. нужно получить такую строку (вместо подчеркиваний пробелы):
"_____Об__экспертной__оценке__предложений__поставщиков__медицинской__продукции"

Автор: Ramirez 13.5.2010, 18:25
сомневаюсь, что это возможно с помощью одного регулярного выражения.
если требуется именно с помощью regexp решить задачу, то потребуется еще eval и наверное цикл генерации выражения. (вот извращенцы, например: http://perl.abigail.be/Talks/Sudoku/HTML/)

стандартными split/length/join задача решается гораздо проще, по-моему.

Автор: amg 14.5.2010, 09:26
Цитата(Ramirez @  13.5.2010,  18:25 Найти цитируемый пост)
сомневаюсь, что это возможно с помощью одного регулярного выражения.
Мне тоже так кажется. Решение даже более простой задачи "Каждый ведущий пробел заменить на  другой символ" с помощью только регулярного выражения оказалось далеко не очевидным (хотя оно (на этом же форуме) было найдено и получилось красивым и коротким).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)