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


Автор: Dima85 6.10.2009, 11:38
Есть текст, хранящийся в $firstline[8], его нужно обрезать, но не строго все после 170. 
Код

$firstline[8] = substr($firstline[8], 0, 170) . qq~... ~;


А обрезать с более мягкими рамками, допустим с 160-180 символов. Главной задачей являеться обрезать текст в пробелах, тоесть нельзя обрезать "кромсать" слова.

Если это возможно реализовать достаточно простым действием подскажите пожалуйста.


Автор: arto 6.10.2009, 11:49
print $firstline[8] =~ m#^(.{160,180})\b# ? $1 : $firstline[8] ?

Автор: Dima85 6.10.2009, 12:01
Почему-то не работает, выводит весь текст и все.

Автор: amg 6.10.2009, 12:47
Гляньте в
http://forum.vingrad.ru/forum/topic-275468/kw-truncate-regex.html

Автор: Dima85 6.10.2009, 13:22
Спасибо большое, разобрался.

Автор: arto 6.10.2009, 14:09
# perl -le 'print $ARGV[0] =~ m#^(.{15,25})\b# ? $1 : $ARGV[0]' "test tset tset tset tset tset test test"
test tset tset tset tset 
# 

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