2013-05-08 3 views
2

У меня есть определенные пользователем переменные, которые являются [email protected]Как добавить символ перед определенным символом в переменной?

Использование perl Мне нужно добавить «sc» в конце пользователя и перед символом @.

, если:

$user = "[email protected]" 
$string = "sc" 

Мне нужно выйти с результатом

$user-id = "[email protected]" 

Любая помощь будет оценена.

ответ

5
$user =~ s/([email protected])/sc/; 

или

$user =~ s/@/[email protected]/; 

или

$user =~ s/^[^@]*\K/sc/; # Assumes "@" will always be present. 

Конечно, ни один из них не будет работать, если $user не содержит правильную строку, чтобы начать с.

$user = "[email protected]"; 

такая же, как

$user = "user" . join($", @domain) . ".com"; 

Учитывая, что @domain не существует, это то же самое, как

$user = "user.com"; 

Всегда используйте use strict; use warnings;! Вы хотите

my $user = "user\@domain.com"; 

или

my $user = '[email protected]'; 

создать вар $user со строкой [email protected].

+0

... или '$ user = reverse (reverse ($ user) = ~ s/@ \ K/cs/r);' :) – ikegami

+0

Кажется, что не работает: $ user = "user @ live. ком "; $ user = ~ s/^ [^ @] * \ K/sc /; print $ user; Возвращает user.comsc другие два return user.com –

+0

Вы уверены, что ваша строка содержит 'user @ domain.com'? Код, который вы показали, не создает такую ​​строку. Всегда используйте 'use strict; использовать предупреждения; '! – ikegami

Смежные вопросы