URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9791
[ Назад ]

Исходное сообщение
"Perl regex help"

Отправлено kotvsapogax , 05-Дек-13 11:39 
Всем привет!

Ребята , гуру , подскажите , как в перле , заменить все символы в слове , кроме первого и последнего ?
Заменить первый и последний могу , $str =~ s/^[a-zA-Z0-9]|[a-zA-Z0-9]$/@/g;
а наоборот чето никак .. (
спасибо!


Содержание

Сообщения в этом обсуждении
"Perl regex help"
Отправлено Pahanivo , 05-Дек-13 14:25 
> Всем привет!
> Ребята , гуру , подскажите , как в перле , заменить все
> символы в слове , кроме первого и последнего ?
> Заменить первый и последний могу , $str =~ s/^[a-zA-Z0-9]|[a-zA-Z0-9]$/@/g;

1) ваш регекс полная хня - про то что вы меняете первый и последний звездите по полной, вы даже не понимаете что напЕсали
2) четче формулировать надо учится - вы много слов знаете которые содержат [0-9]?
3) ну меняй на здоровье s#^(\s)(\S)\S+(\S)(\s)$#$1$2ololo$3$4#g

> а наоборот чето никак .. (
> спасибо!


"Perl regex help"
Отправлено kotvsapogax , 05-Дек-13 15:15 
$cat reg.pl

#!/usr/bin/perl

$str = "q1w2e3r4t5y6";

$str =~ s/^[a-zA-Z0-9]|[a-zA-Z0-9]$/@/g;

print "$str\n";

exit 0;

--

$perl reg.pl
@1w2e3r4t5y@


"Perl regex help"
Отправлено Pahanivo , 05-Дек-13 16:41 
> $cat reg.pl
> #!/usr/bin/perl
> $str = "q1w2e3r4t5y6";
> $str =~ s/^[a-zA-Z0-9]|[a-zA-Z0-9]$/@/g;
> print "$str\n";
> exit 0;
> $perl reg.pl
> @1w2e3r4t5y@

яя! это полный пезд^Wвосторг ))
хотелось бы посоветовать афтару испробовать свой мега скрипт на такой строке:
$str = " q1w2e3r4t5y6 "; а потом убить сибя ап стену, больно ))

темболее выше решение дано, причем универсальное (с маленькой подковыркой, чтоб подумать) ))


"Perl regex help"
Отправлено михалыч , 05-Дек-13 17:00 
> Всем привет!
> Ребята , гуру , подскажите , как в перле , заменить все
> символы в слове , кроме первого и последнего ?
> Заменить первый и последний могу , $str =~ s/^[a-zA-Z0-9]|[a-zA-Z0-9]$/@/g;
> а наоборот чето никак .. (
> спасибо!

#!/usr/bin/perl

$str = "q1w2e3r4t5y6";

# меняем только первый и последний символ
$str =~ s/^.|.$/*/g;

# то же самое, но с группировкой
$str =~ s/(?=^.|.$)./*/g;

# а это как раз наоборот - меняем всё, кроме первого и последнего символа
# супер-пупер-мега шифровальщики :)
$str =~ s/(?!^.|.$)./*/g;

print "$str\n";


"Perl regex help"
Отправлено Pahanivo , 05-Дек-13 17:18 
>> Всем привет!
>> Ребята , гуру , подскажите , как в перле , заменить все
>> символы в слове , кроме первого и последнего ?
>> Заменить первый и последний могу , $str =~ s/^[a-zA-Z0-9]|[a-zA-Z0-9]$/@/g;
>> а наоборот чето никак .. (
>> спасибо!
> #!/usr/bin/perl
> $str = "q1w2e3r4t5y6";
> # меняем только первый и последний символ
> $str =~ s/^.|.$/*/g;

чож вы все прицепились в маркерам начала/конца СТРОКИ, когда нужно СЛОВО разобрать ))

> # то же самое, но с группировкой
> $str =~ s/(?=^.|.$)./*/g;

ща у студента мозг порвет ))

> # а это как раз наоборот - меняем всё, кроме первого и
> последнего символа
> # супер-пупер-мега шифровальщики :)
> $str =~ s/(?!^.|.$)./*/g;
> print "$str\n";


"Perl regex help"
Отправлено oOo , 07-Дек-13 22:58 
>> # меняем только первый и последний символ
>> $str =~ s/^.|.$/*/g;
> чож вы все прицепились в маркерам начала/конца СТРОКИ, когда нужно СЛОВО разобрать ))

Походу оне не вкуривают вообще, не по есть напрочь - о чём ты им говоришь :)
И видимо дойдёт только когда очередной "Фобос" - "в грунт" :(


"Perl regex help"
Отправлено kotvsapogax , 05-Дек-13 17:27 
Михалыч! :) Спасибо!


>[оверквотинг удален]
> $str = "q1w2e3r4t5y6";
> # меняем только первый и последний символ
> $str =~ s/^.|.$/*/g;
> # то же самое, но с группировкой
> $str =~ s/(?=^.|.$)./*/g;
> # а это как раз наоборот - меняем всё, кроме первого и
> последнего символа
> # супер-пупер-мега шифровальщики :)
> $str =~ s/(?!^.|.$)./*/g;
> print "$str\n";