Есть задача:
Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку. Первую звездочку на точку могу поменять, а вот чтобы первую не трогать и заменить только последующие не получается. Помогите плиз.
>Есть задача:
>Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только
>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>Первую звездочку на точку могу поменять, а вот чтобы первую не
>трогать и заменить только последующие не получается. Помогите плиз.s/\*+/*./;
>>Есть задача:
>>Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только
>>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>>Первую звездочку на точку могу поменять, а вот чтобы первую не
>>трогать и заменить только последующие не получается. Помогите плиз.
>
>s/\*+/*./;Не работает, ошибка.
#echo "******" | perl -p -e 's/\*+/*./;'
*.Пропали последующие символы.
Должны были получить:
*.....
>Есть задача:
>Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только
>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>Первую звездочку на точку могу поменять, а вот чтобы первую не
>трогать и заменить только последующие не получается. Помогите плиз.$myline =~ s/*+/*\./;
menyayem vse ******** na *.
>>Есть задача:
>>Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только
>>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>>Первую звездочку на точку могу поменять, а вот чтобы первую не
>>трогать и заменить только последующие не получается. Помогите плиз.
>
>$myline =~ s/*+/*\./;
>
>menyayem vse ******** na *.Не то однако:
#echo "******" | perl -p -e 's/\*+/*./;'
*.Пропали последующие звездочки (*), которые должны были поменяться на (.)
>[оверквотинг удален]
>>
>>$myline =~ s/*+/*\./;
>>
>>menyayem vse ******** na *.
>
>Не то однако:
>#echo "******" | perl -p -e 's/\*+/*./;'
>*.
>
>Пропали последующие звездочки (*), которые должны были поменяться на (.)Тогда так.
echo "****" | perl -ane 's/(?<=\*)\*/./g;print'
>Есть задача:
>Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только
>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>Первую звездочку на точку могу поменять, а вот чтобы первую не
>трогать и заменить только последующие не получается. Помогите плиз.$a="********************";
$a=~s/(\*)(\*+)/$1 . "." x length($2)/e;
print $a;
>>Есть задача:
>>Имеется строчка из n количества (звездочек) *********. Необходимо на Perl, используя только
>>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>>Первую звездочку на точку могу поменять, а вот чтобы первую не
>>трогать и заменить только последующие не получается. Помогите плиз.
>
>$a="********************";
>$a=~s/(\*)(\*+)/$1 . "." x length($2)/e;
>print $a;видимо нужен регексп, поэтому Вашу идею развиваем в:
echo '*********' |perl -ne 's/^*(\*+)/"*"."."x(length($1))/e;print'
>[оверквотинг удален]
>>>одно (!!!) регулярное выражение, заменить все звездочки кроме первой на точку.
>>>Первую звездочку на точку могу поменять, а вот чтобы первую не
>>>трогать и заменить только последующие не получается. Помогите плиз.
>>
>>$a="********************";
>>$a=~s/(\*)(\*+)/$1 . "." x length($2)/e;
>>print $a;
>
>видимо нужен регексп, поэтому Вашу идею развиваем в:
>echo '*********' |perl -ne 's/^*(\*+)/"*"."."x(length($1))/e;print'Ну ступил, ну не проснулся... бывает :)
Зачем perl, когда есть pascal?
Вот как это красиво на паскале:var
s: string;
i: integer;
begin
s := '*********';
for i:=1 to length(s) do
if i <> 1 then s[i] = '.';
writeln(s);
end.
>[оверквотинг удален]
>
>var
> s: string;
> i: integer;
>begin
> s := '*********';
> for i:=1 to length(s) do
> if i <> 1 then s[i] = '.';
> writeln(s);
>end.И откуда интересно я на своей Соляре паскаль дастану??
Я вот не могу понять, это у вас такой тонкий юмор или просто в детстве уронили на голову исказив понимание красоты? Если последнее, то можете усовершенствовать свой пример, дабы он научился читать со стандартного ввода и обрабатывать строки где есть не только *. Потом сравните с уже предложенным:
perl -ane 's/(?<=\*)\*/./g;print'
>Я вот не могу понять, это у вас такой тонкий юмор или...Да, просто пошутил :)