Forum Webscript.Ru

Программирование => Perl => Тема начата: Yaroslav от 17 Мая 2004, 20:45:05

Название: вывод определенного количества
Отправлено: Yaroslav от 17 Мая 2004, 20:45:05
есть $text="целая строка";
чем ее изменить что б она стала фиксированной длины, к примеру в 9 знаков. ($text="целая стр";)
Название: вывод определенного количества
Отправлено: NeoNox от 17 Мая 2004, 20:51:29
например вот так:
$count = 9;
$text =~ s/(\\w{$count}).*/$1/;
Название: вывод определенного количества
Отправлено: Yaroslav от 17 Мая 2004, 20:53:18
спасибо.
где можно почитать, что б узнать и понять что делает эта функция?
Название: вывод определенного количества
Отправлено: arto от 17 Мая 2004, 21:16:16
perldoc -f substr
Название: вывод определенного количества
Отправлено: Yaroslav от 17 Мая 2004, 22:41:53
arto
это немножко не то.
Название: вывод определенного количества
Отправлено: Wyclef от 17 Мая 2004, 22:57:21
Yaroslav
Что значит "немножко" (substr тебе не подойдет, только если у тебя в начале строки стоят пропуски, переносы и т.д.)? substr тоже обрезает строку, причем можно задать с какого конца, а в примере NeoNoxа исходная строка просто заменяется на $count первых алфавитных символов, найденных в ней же.
Название: вывод определенного количества
Отправлено: Yaroslav от 17 Мая 2004, 23:16:04
Wyclef
да, обрезает и вставляет любой текст или до или после или вместо.
мне так показалось что пример NeoNoxа больше подходит.
Название: вывод определенного количества
Отправлено: NeoNox от 17 Мая 2004, 23:32:06
Yaroslav substr $text, 0, 9;
тебе подходит не меньше. Разве, только в случаях указанных Wyclef
Название: вывод определенного количества
Отправлено: Yaroslav от 18 Мая 2004, 00:36:23
Цитировать
NeoNox:
например вот так:
$count = 9;
$text =~ s/(\\w{$count}).*/$1/;

если в значении $text имеется пробел, данный пример не работает.
Название: вывод определенного количества
Отправлено: Wyclef от 18 Мая 2004, 01:00:00
Yaroslav
Бывает. Замени на: ([\\w ]{$count}).*
А лучще substr в зубы и не заморачивайся.
Название: вывод определенного количества
Отправлено: Mog. от 18 Мая 2004, 08:46:34
А почему не     /(.{$count})/$1/
Название: вывод определенного количества
Отправлено: Yaroslav от 18 Мая 2004, 10:12:32
Цитировать
Wyclef:
А лучще substr в зубы и не заморачивайся.

с ним такая же проблемка
Название: вывод определенного количества
Отправлено: Yaroslav от 18 Мая 2004, 11:10:02
и еще одно дополнение, для корректной работы с русским текстом нужно делать так.
$text =~ s/(.{9}).*/$1/;