Forum Webscript.Ru
Программирование => Perl => Тема начата: Yaroslav от 17 Мая 2004, 20:45:05
-
есть $text="целая строка";
чем ее изменить что б она стала фиксированной длины, к примеру в 9 знаков. ($text="целая стр";)
-
например вот так:
$count = 9;
$text =~ s/(\\w{$count}).*/$1/;
-
спасибо.
где можно почитать, что б узнать и понять что делает эта функция?
-
perldoc -f substr
-
arto
это немножко не то.
-
Yaroslav
Что значит "немножко" (substr тебе не подойдет, только если у тебя в начале строки стоят пропуски, переносы и т.д.)? substr тоже обрезает строку, причем можно задать с какого конца, а в примере NeoNoxа исходная строка просто заменяется на $count первых алфавитных символов, найденных в ней же.
-
Wyclef
да, обрезает и вставляет любой текст или до или после или вместо.
мне так показалось что пример NeoNoxа больше подходит.
-
Yaroslav substr $text, 0, 9;
тебе подходит не меньше. Разве, только в случаях указанных Wyclef
-
NeoNox:
например вот так:
$count = 9;
$text =~ s/(\\w{$count}).*/$1/;
если в значении $text имеется пробел, данный пример не работает.
-
Yaroslav
Бывает. Замени на: ([\\w ]{$count}).*
А лучще substr в зубы и не заморачивайся.
-
А почему не /(.{$count})/$1/
-
Wyclef:
А лучще substr в зубы и не заморачивайся.
с ним такая же проблемка
-
и еще одно дополнение, для корректной работы с русским текстом нужно делать так.
$text =~ s/(.{9}).*/$1/;